Example #1
0
 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'])
Example #3
0
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')