def getRoles(self, principal_id): """ give an Owner who is also a 'selfpublisher', the reviewer role """ context = self.context current_roles = list(DefaultLocalRoleAdapter.getRoles( self, principal_id, )) # check we are not on the workspace itself if IHasWorkspace.providedBy(context): return current_roles # ignore if we are not Owner if 'Owner' not in current_roles: return current_roles # otherwise we should acquire the workspace and check out roles workspace = getattr(context, 'acquire_workspace', lambda: None)() if workspace is None: return current_roles workspace_roles = api.user.get_roles(obj=workspace) if 'SelfPublisher' in workspace_roles and 'Owner' in current_roles: current_roles.append('Reviewer') return current_roles
def test_add_workspacefolder(self): """ check that we can create our workspace folder type, and that it provides the collective.workspace behaviour """ self.login_as_portal_owner() workspace_folder = api.content.create( self.portal, 'ploneintranet.workspace.workspacefolder', 'example-workspace', title=u'Welcome to my workspacé' ) self.assertTrue( IHasWorkspace.providedBy(workspace_folder), 'Workspace type does not provide the' 'collective.workspace behaviour', ) # does the view work? view = workspace_folder.restrictedTraverse('@@view') html = view() self.assertIn( workspace_folder.title, html, 'Workspace title not found on view page' )
def test_roster_access(self): """ test who can access the roster tab and that members can see users who are part of the workspace """ self.login_as_portal_owner() api.user.create(username='******', email='*****@*****.**') api.user.create(username='******', email='*****@*****.**') workspace_folder = api.content.create( self.portal, 'ploneintranet.workspace.workspacefolder', 'example-workspace' ) self.add_user_to_workspace( 'wsmember', workspace_folder ) self.add_user_to_workspace( 'wsmember2', workspace_folder ) self.login('wsmember') self.assertTrue(IHasWorkspace.providedBy(workspace_folder)) html = workspace_folder.restrictedTraverse('@@team-roster')() self.assertIn('wsmember', html) self.assertIn('wsmember2', html)
def getRoles(self, principal_id): """ give an Owner who is also a 'selfpublisher', the reviewer role """ context = self.context current_roles = list( DefaultLocalRoleAdapter.getRoles( self, principal_id, )) # check we are not on the workspace itself if IHasWorkspace.providedBy(context): return current_roles # ignore if we are not Owner if 'Owner' not in current_roles: return current_roles # otherwise we should acquire the workspace and check out roles workspace = getattr(context, 'acquire_workspace', lambda: None)() if workspace is None: return current_roles workspace_roles = api.user.get_roles(obj=workspace) if 'SelfPublisher' in workspace_roles and 'Owner' in current_roles: current_roles.append('Reviewer') return current_roles
def test_add_workspacefolder(self): """ check that we can create our workspace folder type, and that it provides the collective.workspace behaviour """ self.login_as_portal_owner() workspace_folder = api.content.create( self.workspace_container, 'ploneintranet.workspace.workspacefolder', 'example-workspace', title=u'Welcome to my workspacé' ) self.assertTrue( IHasWorkspace.providedBy(workspace_folder), 'Workspace type does not provide the' 'collective.workspace behaviour', ) # does the view work? view = workspace_folder.restrictedTraverse('@@view') html = view() self.assertIn( workspace_folder.title, html, 'Workspace title not found on view page' )
def test_roster_access(self): """ test who can access the roster tab and that members can see users who are part of the workspace """ self.login_as_portal_owner() api.user.create(username='******', email='*****@*****.**') api.user.create(username='******', email='*****@*****.**') workspace_folder = api.content.create( self.workspace_container, 'ploneintranet.workspace.workspacefolder', 'example-workspace') self.add_user_to_workspace('wsmember', workspace_folder) self.add_user_to_workspace('wsmember2', workspace_folder) self.login('wsmember') self.assertTrue(IHasWorkspace.providedBy(workspace_folder)) html = workspace_folder.restrictedTraverse('@@team-roster')() self.assertIn('wsmember', html) self.assertIn('wsmember2', html)