diff --git a/product/ERP5/ERP5Site.py b/product/ERP5/ERP5Site.py index 6b80a87b2b40c2f51c8482e4660330f8d14cb5fd..61795529cff36f7eb8b5700ce0dad3fdfea3cd01 100755 --- a/product/ERP5/ERP5Site.py +++ b/product/ERP5/ERP5Site.py @@ -193,7 +193,7 @@ class ERP5Site ( CMFSite, FolderMixIn ): for key in workflow_title_list: sorted_global_actions.append({'title': key, 'disabled': 1}) sorted_global_actions.extend(sorted_workflow_actions[key]) - sorted_global_actions.append({'title': 'Other', 'disabled': 1}) + sorted_global_actions.append({'title': 'Others', 'disabled': 1}) sorted_global_actions.extend(other_global_actions) return sorted_global_actions @@ -310,9 +310,9 @@ class ERP5Generator(PortalGenerator): addLocalizer('', ('en',)) localizer = getToolByName(p, 'Localizer') addMessageCatalog = localizer.manage_addProduct['Localizer'].manage_addMessageCatalog - addMessageCatalog('default', 'ERP5 Localized Messages', ('en')) - addMessageCatalog('erp5_ui', 'ERP5 Localized Interface', ('en')) - addMessageCatalog('erp5_content', 'ERP5 Localized Content', ('en')) + addMessageCatalog('default', 'ERP5 Localized Messages', ('en',)) + addMessageCatalog('erp5_ui', 'ERP5 Localized Interface', ('en',)) + addMessageCatalog('erp5_content', 'ERP5 Localized Content', ('en',)) # Add Translation Service p.manage_addProduct['TranslationService'].addPlacefulTranslationService('translation_service') @@ -333,34 +333,45 @@ class ERP5Generator(PortalGenerator): # 'index_html', 'Member list', '<dtml-return roster>') def setupFrontPage(self, p): - text = """<span metal:define-macro="body"> -<span tal:condition="python: not here.portal_membership.isAnonymousUser()"> -<br/> -<br/> -<br/> -<br/> -<h3 align=center>Welcome to your new information system</h3> -<table border=1 align=center> -<tr tal:define="module_list python:here.objectValues('ERP5 Folder'); - dummy python:module_list.sort(lambda x,y: cmp(x.getTitle(), y.getTitle())); - module_len python:len(module_list); - col_size python:16; - col_len python:module_len / col_size"> - <td> - <img src="erp5_logo.png" alt="ERP5 Logo" /> - </td> - <td tal:repeat="col_no python:range(col_len)" valign="top" class="ModuleShortcut"> - <p tal:repeat="module python:module_list[col_size*col_no:min(col_size*(col_no+1),module_len)] "><a href="composant" - tal:content="module/title" - tal:attributes="href module/id">Composants</a></p> - </td> -</tr> -</table> + text = """<span metal:define-macro="body"> + + <span tal:condition="python: not here.portal_membership.isAnonymousUser()"> + <br/> + <br/> + <br/> + <br/> + <h2 align="center" i18n:translate="" i18n:domain="content"> + Welcome to your new information system + </h2> + <table border="1" align="center"> + <tr tal:define="module_list python:here.ERP5Site_getModuleItemList(); + module_len python:len(module_list); + col_size python:16; + col_len python:(module_len + col_size) / col_size"> + <td> + <img src="erp5_logo.png" alt="ERP5 Logo" /> + </td> + <tal:block tal:repeat="col_no python:range(col_len)"> + <td valign="top" class="ModuleShortcut"> + <tal:block tal:repeat="module python:module_list[col_size*col_no:min(col_size*(col_no+1),module_len)] "> + <p> + <a href="person" + tal:content="python: module[1]" + tal:attributes="href python: module[0]"> + Person + </a> + </p> + </tal:block> + </td> + </tal:block> + </tr> + </table> + </span> + + <span tal:condition="python: here.portal_membership.isAnonymousUser()"> + <p tal:define="dummy python:request.RESPONSE.redirect('%s/login_form' % here.absolute_url())"/> + </span> -</span> -<span tal:condition="python: here.portal_membership.isAnonymousUser()"> -<p tal:define="dummy python:request.RESPONSE.redirect('%s/login_form' % here.absolute_url())"/> -</span> </span> """ p.manage_addProduct['PageTemplates'].manage_addPageTemplate( @@ -409,11 +420,42 @@ class ERP5Generator(PortalGenerator): def setupUserFolder(self, p): try: # Use NuxUserGroups instead of the standard acl_users. - p.manage_addProduct['NuxUserGroups'].manage_addUserFolderWithGroups() + p.manage_addProduct['NuxUserGroups'].addUserFolderWithGroups() except: # No way. PortalGenerator.setupUserFolder(self, p) + def setupPermissions(self, p): + permission_dict = { + 'Access Transient Objects' : ('Manager', 'Anonymous'), + 'Access contents information' : ('Manager', 'Member', 'Anonymous'), + 'Access future portal content' : ('Manager', 'Reviewer'), + 'Access session data' : ('Manager', 'Anonymous'), + 'AccessContentsInformation' : ('Manager', 'Member'), + 'Add portal content' : ('Manager', 'Owner'), + 'Add portal folders' : ('Manager', 'Owner'), + 'Delete objects' : ('Manager', 'Owner'), + 'FTP access' : ('Manager', 'Owner'), + 'List folder contents' : ('Manager', 'Member'), + 'List portal members' : ('Manager', 'Member'), + 'List undoable changes' : ('Manager', 'Member'), + 'Manage properties' : ('Manager', 'Owner'), + 'Modify portal content' : ('Manager', 'Owner'), + 'Reply to item' : ('Manager', 'Member'), + 'Review portal content' : ('Manager', 'Reviewer'), + 'Search ZCatalog' : ('Manager', 'Member'), + 'Set own password' : ('Manager', 'Member'), + 'Set own properties' : ('Manager', 'Member'), + 'Undo changes' : ('Manager', 'Owner'), + 'View' : ('Manager', 'Member', 'Owner', 'Anonymous'), + 'View management screens' : ('Manager', 'Owner') + } + + for permission in p.ac_inherited_permissions(1): + name = permission[0] + role_list = permission_dict.get(name, ('Manager',)) + p.manage_permission(name, roles=role_list, acquire=0) + def setup(self, p, create_userfolder): self.setupTools(p) self.setupMailHost(p)