# HG changeset patch # User Sverre Rabbelier # Date 1253296583 -7200 # Node ID 50ce8ac13932d78f2c95ccc29b435b25e575254d # Parent b799af27440e0f4e59efbf003b45d0ee7a40a956 Use the new rights code in core diff -r b799af27440e -r 50ce8ac13932 app/soc/logic/rights.py --- a/app/soc/logic/rights.py Fri Sep 18 19:55:03 2009 +0200 +++ b/app/soc/logic/rights.py Fri Sep 18 19:56:23 2009 +0200 @@ -29,63 +29,12 @@ """Checker class that maps from prefix and status to membership. """ - SITE_MEMBERSHIP = { - 'admin': [], - 'restricted': ['host'], - 'member': ['user'], - 'list': ['host'], - } - - CLUB_MEMBERSHIP = { - 'admin': ['host', 'club_admin'], - 'restricted': ['host', 'club_admin'], - 'member': ['host', 'club_admin', 'club_member'], - 'list': ['host', 'club_admin', 'club_member'], - } - - SPONSOR_MEMBERSHIP = { - 'admin': ['host'], - 'restricted': ['host'], - 'member': ['host'], - 'list': ['host'], - } - - PROGRAM_MEMBERSHIP = { - 'admin': ['host'], - 'restricted': ['host', 'org_admin'], - 'member': ['host', 'org_admin', 'org_mentor', 'org_student'], - 'list': ['host', 'org_admin', 'org_mentor'], - } - - ORGANIZATION_MEMBERSHIP = { - 'admin': ['host', 'org_admin'], - 'restricted': ['host', 'org_admin', 'org_mentor'], - 'member': ['host', 'org_admin', 'org_mentor', 'org_student'], - 'list': ['host', 'org_admin', 'org_mentor'], - } - - USER_MEMBERSHIP = { - 'admin': ['user_self'], - 'restricted': ['user_self'], # ,'friends' - 'member': ['user'], - 'list': ['user_self'], - } - - RIGHTS = { - 'site': SITE_MEMBERSHIP, - 'club': CLUB_MEMBERSHIP, - 'sponsor': SPONSOR_MEMBERSHIP, - 'program': PROGRAM_MEMBERSHIP, - 'org': ORGANIZATION_MEMBERSHIP, - 'user': USER_MEMBERSHIP, - } - - def __init__(self, prefix): + def __init__(self, rights, prefix): """Constructs a Checker for the specified prefix. """ + self.rights = rights[prefix] self.prefix = prefix - self.rights = self.RIGHTS[prefix] def getMembership(self, status): """Retrieves the membership list for the specified status. diff -r b799af27440e -r 50ce8ac13932 app/soc/modules/soc_core/callback.py --- a/app/soc/modules/soc_core/callback.py Fri Sep 18 19:55:03 2009 +0200 +++ b/app/soc/modules/soc_core/callback.py Fri Sep 18 19:56:23 2009 +0200 @@ -143,3 +143,58 @@ self.core.registerSidebarEntry(mentor.view.getSidebarMenus) self.core.registerSidebarEntry(org_app.view.getSidebarMenus) self.core.registerSidebarEntry(grading_survey_group.view.getSidebarMenus) + + def registerRights(self): + """Called by the server when the documetn rights should be registerd. + """ + + site_membership = { + 'admin': [], + 'restricted': ['host'], + 'member': ['user'], + 'list': ['host'], + } + + club_membership = { + 'admin': ['host', 'club_admin'], + 'restricted': ['host', 'club_admin'], + 'member': ['host', 'club_admin', 'club_member'], + 'list': ['host', 'club_admin', 'club_member'], + } + + sponsor_membership = { + 'admin': ['host'], + 'restricted': ['host'], + 'member': ['host'], + 'list': ['host'], + } + + program_membership = { + 'admin': ['host'], + 'restricted': ['host', 'org_admin'], + 'member': ['host', 'org_admin', 'org_mentor', 'org_student'], + 'list': ['host', 'org_admin', 'org_mentor'], + } + + organization_membership = { + 'admin': ['host', 'org_admin'], + 'restricted': ['host', 'org_admin', 'org_mentor'], + 'member': ['host', 'org_admin', 'org_mentor', 'org_student'], + 'list': ['host', 'org_admin', 'org_mentor'], + } + + user_membership = { + 'admin': ['user_self'], + 'restricted': ['user_self'], # ,'friends' + 'member': ['user'], + 'list': ['user_self'], + } + + self.core.registerRight('site', site_membership) + self.core.registerRight('club': club_membership) + self.core.registerRight('sponsor': sponsor_membership) + self.core.registerRight('program': program_membership) + self.core.registerRight('ghop_program': ghop_program_membership) + self.core.registerRight('org': organization_membership) + self.core.registerRight('ghop_org': ghop_organization_membership) + self.core.registerRight('user': user_membership) diff -r b799af27440e -r 50ce8ac13932 app/soc/views/helper/access.py --- a/app/soc/views/helper/access.py Fri Sep 18 19:55:03 2009 +0200 +++ b/app/soc/views/helper/access.py Fri Sep 18 19:56:23 2009 +0200 @@ -34,7 +34,6 @@ from django.utils.translation import ugettext from soc.logic import dicts -from soc.logic import rights as rights_logic from soc.logic.helper import timeline as timeline_helper from soc.logic.models.club_admin import logic as club_admin_logic from soc.logic.models.club_member import logic as club_member_logic @@ -448,7 +447,7 @@ django_args: the django args to pass on to the checkers """ - checker = rights_logic.Checker(prefix) + checker = callback.getCore().getRightsChecker(prefix) roles = checker.getMembership(status) message_fmt = DEF_NEED_MEMBERSHIP_MSG_FMT % { @@ -1946,7 +1945,7 @@ filter = django_args['filter'] prefix = filter['prefix'] - checker = rights_logic.Checker(prefix) + checker = callback.getCore().getRightsChecker(prefix) roles = checker.getMembership('list') if not self.hasMembership(roles, filter): @@ -1975,7 +1974,7 @@ django_args['prefix'] = prefix django_args['scope_path'] = get_args['scope_path'] - checker = rights_logic.Checker(prefix) + checker = callback.getCore().getRightsChecker(prefix) memberships = checker.getMemberships() roles = []