# HG changeset patch # User Madhusudan.C.S # Date 1253297188 -7200 # Node ID f6515daaf00016a7793bf2e51536c5417746cb8b # Parent 50ce8ac13932d78f2c95ccc29b435b25e575254d Enable document system for GHOP As can be seen from the changes outside app/soc/modules, there is still some work to be done to make the modules fully restricted to configuration changes and code in app/soc/modules. Reviewed-by: Sverre Rabbelier diff -r 50ce8ac13932 -r f6515daaf000 app/soc/models/document.py --- a/app/soc/models/document.py Fri Sep 18 19:56:23 2009 +0200 +++ b/app/soc/models/document.py Fri Sep 18 20:06:28 2009 +0200 @@ -17,6 +17,7 @@ """This module contains the Document Model.""" __authors__ = [ + '"Madhusudan.C.S" ', '"Pawel Solyga" ', '"Sverre Rabbelier" ', ] @@ -50,7 +51,8 @@ #: field storing the prefix of this document prefix = db.StringProperty(default='user', required=True, - choices=['site', 'club', 'sponsor', 'program', 'org', 'user'], + choices=['site', 'club', 'sponsor', 'program', + 'ghop_program', 'org', 'ghop_org', 'user'], verbose_name=ugettext('Prefix')) prefix.help_text = ugettext( 'Indicates the prefix of the document,' diff -r 50ce8ac13932 -r f6515daaf000 app/soc/modules/ghop/callback.py --- a/app/soc/modules/ghop/callback.py Fri Sep 18 19:56:23 2009 +0200 +++ b/app/soc/modules/ghop/callback.py Fri Sep 18 20:06:28 2009 +0200 @@ -81,3 +81,25 @@ self.core.registerSidebarEntry(task_subscription.view.getSidebarMenus) self.core.registerSidebarEntry(timeline.view.getSidebarMenus) + def registerRights(self): + """Called by the server when the documetn rights should be registerd. + """ + + ghop_program_membership = { + 'admin': ['host'], + 'restricted': ['host', 'ghop_org_admin'], + 'member': ['host', 'ghop_org_admin', 'ghop_org_mentor', + 'ghop_org_student'], + 'list': ['host', 'ghop_org_admin', 'ghop_org_mentor'], + } + + ghop_organization_membership = { + 'admin': ['host', 'ghop_org_admin'], + 'restricted': ['host', 'ghop_org_admin', 'ghop_org_mentor'], + 'member': ['host', 'ghop_org_admin', 'ghop_org_mentor', + 'ghop_org_student'], + 'list': ['host', 'ghop_org_admin', 'ghop_org_mentor'], + } + + self.core.registerRight('ghop_program', ghop_program_membership) + self.core.registerRight('ghop_org', ghop_organization_membership) diff -r 50ce8ac13932 -r f6515daaf000 app/soc/modules/ghop/views/models/organization.py --- a/app/soc/modules/ghop/views/models/organization.py Fri Sep 18 19:56:23 2009 +0200 +++ b/app/soc/modules/ghop/views/models/organization.py Fri Sep 18 20:06:28 2009 +0200 @@ -109,6 +109,10 @@ new_params['mentor_role_name'] = 'ghop_mentor' + new_params['edit_extra_dynaproperties'] = { + 'clean': cleaning.clean_refs(new_params, ['home_link_id']) + } + params = dicts.merge(params, new_params, sub_merge=True) super(View, self).__init__(params=params) diff -r 50ce8ac13932 -r f6515daaf000 app/soc/views/helper/access.py --- a/app/soc/views/helper/access.py Fri Sep 18 19:56:23 2009 +0200 +++ b/app/soc/views/helper/access.py Fri Sep 18 20:06:28 2009 +0200 @@ -24,6 +24,7 @@ """ __authors__ = [ + '"Madhusudan.C.S" ', '"Todd Larsen" ', '"Sverre Rabbelier" ', '"Lennard de Rijk" ', @@ -56,6 +57,13 @@ from soc.views.helper import redirects from soc.views import out_of_band +from soc.modules.ghop.logic.models.mentor import logic as ghop_mentor_logic +from soc.modules.ghop.logic.models.organization import logic as ghop_org_logic +from soc.modules.ghop.logic.models.org_admin import logic as \ + ghop_org_admin_logic +from soc.modules.ghop.logic.models.program import logic as ghop_program_logic +from soc.modules.ghop.logic.models.student import logic as ghop_student_logic + DEF_NO_USER_LOGIN_MSG = ugettext( 'Please create User Profile' @@ -257,6 +265,9 @@ 'org_admin': ('checkHasDocumentAccess', [org_admin_logic, 'org']), 'org_mentor': ('checkHasDocumentAccess', [mentor_logic, 'org']), 'org_student': ('checkHasDocumentAccess', [student_logic, 'org']), + 'ghop_org_admin': ('checkHasDocumentAccess', [ghop_org_admin_logic, 'org']), + 'ghop_org_mentor': ('checkHasDocumentAccess', [ghop_mentor_logic, 'org']), + 'ghop_org_student': ('checkHasDocumentAccess', [ghop_student_logic, 'org']), 'user': 'checkIsUser', 'user_self': ('checkIsUserSelf', 'scope_path'), } @@ -267,7 +278,11 @@ 'site': None, 'sponsor': (sponsor_logic, {'sponsor': 0}), 'program': (program_logic, {'sponsor': 1, 'program': 0}), + 'ghop_program': ( + ghop_program_logic, {'sponsor': 1, 'ghop_program': 0}), 'org': (org_logic, {'sponsor': 2, 'program': 1, 'org': 0}), + 'ghop_org': ( + ghop_org_logic, {'sponsor': 2, 'ghop_program': 1, 'ghop_org': 0}), } def __init__(self, params):