def test_groupsWithOneOfPermissions(self): self.assertItemsEqual( utils.groupsWithOneOfPermissions( self.user.preferences.GROUPS, ['edit_roles', 'edit_staff_configurations']).keys(), [ 'manager', 'team', 'cm', 'entertainer', ])
_links_for_groups = {} _links_to_show_first = [] # Retrieve collections and pages that will be in staff dropdown to put them at the right place in order for collection in collections.values(): if (collection.navbar_link_list == 'staff' and collection.list_view.enabled): view_with_permissions = collection.list_view if collection.name != 'badge' else collection.add_view if (collection.name != 'staffdetails' and (view_with_permissions.permissions_required or view_with_permissions.one_of_permissions_required)): groups = [] if view_with_permissions.permissions_required: groups += groupsWithPermissions(_groups_dict, view_with_permissions.permissions_required).keys() if view_with_permissions.one_of_permissions_required: groups += groupsWithOneOfPermissions(_groups_dict, view_with_permissions.one_of_permissions_required).keys() for group in groups: if group not in _links_for_groups: _links_for_groups[group] = [] name = u'{}-{}_list'.format(group, collection.name) _links_for_groups[group].append(name) navbarAddLink(name, { 'title': collection.plural_title, 'icon': collection.icon, 'image': collection.image, 'url': collection.get_list_url(), 'show_link_callback': _getPageShowLinkForGroupsLambda(group), }, 'staff') if u'{}_list'.format(collection.name) in navbar_links['staff']['links']: del(navbar_links['staff']['links'][u'{}_list'.format(collection.name)]) else:
_links_for_groups = {} _links_to_show_first = [] # Retrieve collections and pages that will be in staff dropdown to put them at the right place in order for collection in collections.values(): if (collection.navbar_link_list == 'staff' and collection.list_view.enabled): view_with_permissions = collection.list_view if collection.name != 'badge' else collection.add_view if (collection.name != 'staffdetails' and (view_with_permissions.permissions_required or view_with_permissions.one_of_permissions_required)): groups = [] if view_with_permissions.permissions_required: groups += groupsWithPermissions(_groups_dict, view_with_permissions.permissions_required).keys() if view_with_permissions.one_of_permissions_required: groups += groupsWithOneOfPermissions(_groups_dict, view_with_permissions.one_of_permissions_required).keys() for group in groups: if group not in _links_for_groups: _links_for_groups[group] = [] name = u'{}-{}_list'.format(group, collection.name) _links_for_groups[group].append(name) navbarAddLink(name, { 'title': collection.plural_title, 'url': collection.get_list_url(), 'show_link_callback': _getPageShowLinkForGroupsLambda(group), }, 'staff') if u'{}_list'.format(collection.name) in navbar_links['staff']['links']: del(navbar_links['staff']['links'][u'{}_list'.format(collection.name)]) else: _links_to_show_first.append(u'{}_list'.format(collection.name)) for name, pages in ENABLED_PAGES.items():