Ejemplo n.º 1
0
def set_context(id_or_username, context_id=0):
    """
    user_id: user.id
    name: name of the current user
    id: context_id
    current_roles: {context1: { ctx: context_id,
                                ctx_label: <context-label>,
                                ctx_roles: (
                                        {name: <role-name>, order: <role-order>, label: <role-label>},
                                        {name: <role-name>, order: <role-order>, label: <role-label>}, .. ),
                                role_names: (<role-name1>, <role-name2>, <role-name3>, ..) }
                    context2: {..},
                    ..
                    }
    """
    if isinstance(id_or_username, basestring):
        user = user_store.get_one_by(dict(username=id_or_username))
    else:
        user = user_store.get(id_or_username)
    env.context.user_id = user.id
    env.context.roles = rolelib.get_roles(user.id)
    current_roles = {}
    for role in env.context.roles:
        context = role['context']
        current_roles[context] = commonlib.helpers.odict(ctx=context, ctx_label=role['label'])
        current_roles[context]['ctx_roles'] = \
            tuple(dict(name=ctx_role['role'], order=ctx_role['order'], label=ctx_role['label']) for ctx_role in role['roles'])
        current_roles[context]['role_names'] = set(ctx_role['role'] for ctx_role in role['roles'])
    env.context.current_roles = current_roles
    env.context.current_perms = rolelib.permissions_by_current_roles()
    try:
        env.context.name = member_store.get(env.context.user_id, fields=['name'])
    except:
        env.context.name = user.username
    env.context.id = context_id
Ejemplo n.º 2
0
def test_assign_role():
    role_data = get_role_data()
    rolelib.new_roles(**role_data)
    for role_dict in rolelib.get_roles(role_data['user_id']):
        if role_dict['context'] == role_data['context']:
            break
    assert set(role_data['roles']).issubset([role['role'] for role in role_dict['roles']]) == True
    env.context.pgcursor.connection.commit()
Ejemplo n.º 3
0
    def list(self, owner=None):
        """
        returns list of bizplace info dicts
        """
        if not owner:
            owner = env.context.user_id
            roles = env.context.roles
        else:
            roles = rolelib.get_roles(owner)
        my_bizplace_ids = set(role.context for role in roles if role.context)
        result = dbaccess.list_bizplaces(my_bizplace_ids)
        #DB returns country numeric code, which needs to be replaced by label
        #before it is returned
        for rec in result:
            rec['country'] = static.countries_map[rec['country']]

        return result