def policy_list_roles(self, operator, filter): """Return a list of roles that match the given filters.""" # This method is available for everyone role = Role(self.db) filters = self._parse_filters(filter, { 'name': str, 'date': self._parse_create_date_range, 'create': self._parse_create_date_range, 'desc': str, 'foundation': str, }, default_filter='name', default_value=None) date_start = date_end = None if filters['date']: date_start, date_end = filters['date'] if date_end is NotSet: # only the specific date should be used date_end = date_start create_start = create_end = None if filters['create']: create_start, create_end = filters['create'] if create_end is NotSet: # only the specific date should be used create_end = create_start ret = [] for row in role.search(name=filters['name'], description=filters['desc'], create_start=create_start, create_end=create_end, foundation_start=date_start, foundation_end=date_end, foundation=filters['foundation']): ret.append({'name': row['name'], 'desc': row['description']}) return sorted(ret, key=lambda r: r['name'])
def policy_list_roles(self, operator, filter): """Return a list of roles that match the given filters.""" # This method is available for everyone role = Role(self.db) filters = self._parse_filters(filter, {'name': str, 'date': self._parse_create_date_range, 'create': self._parse_create_date_range, 'desc': str, 'foundation': str}, default_filter='name', default_value=None) date_start = date_end = None if filters['date']: date_start, date_end = filters['date'] if date_end is NotSet: # only the specific date should be used date_end = date_start create_start = create_end = None if filters['create']: create_start, create_end = filters['create'] if create_end is NotSet: # only the specific date should be used create_end = create_start ret = [] for row in role.search(name=filters['name'], description=filters['desc'], create_start=create_start, create_end=create_end, foundation_start=date_start, foundation_end=date_end, foundation=filters['foundation']): ret.append({ 'name': row['name'], 'desc': row['description'], }) return sorted(ret, key=lambda r: r['name'])
def process_roles(stream): """Produce a csv list of all roles and its direct members.""" logger.info('process_roles started') db = Factory.get('Database')() role = Role(db) # TODO: might want to use search_relations directly, and map it in python # instead of have a relations call for every role (there might be a lot of # roles in the future?). for row in role.search(): stream.write(';'.join( (row['name'], row['description'], row['foundation'] or '', row['created_at'].strftime('%Y-%m-%d'), ','.join(m['target_name'] for m in role.search_relations( source_id=row['component_id']))))) stream.write('\n') logger.info('process_roles done')
def process_roles(stream): """Produce a csv list of all roles and its direct members.""" logger.info('process_roles started') db = Factory.get('Database')() role = Role(db) # TODO: might want to use search_relations directly, and map it in python # instead of have a relations call for every role (there might be a lot of # roles in the future?). for row in role.search(): stream.write(';'.join((row['name'], row['description'], row['foundation'] or '', row['created_at'].strftime('%Y-%m-%d'), ','.join(m['target_name'] for m in role.search_relations( source_id=row['component_id']))))) stream.write('\n') logger.info('process_roles done')