示例#1
0
文件: user.py 项目: odra/securitas
def user(ipa, username):
    user = User(user_or_404(ipa, username))
    # As a speed optimization, we make two separate calls.
    # Just doing a group_find (with all=True) is super slow here, with a lot of
    # groups.
    groups = [Group(g) for g in ipa.group_find(user=username, all=False)['result']]
    managed_groups = [
        Group(g)
        for g in ipa.group_find(membermanager_user=username, all=False)['result']
    ]
    return render_template(
        'user.html', user=user, groups=groups, managed_groups=managed_groups
    )
示例#2
0
文件: app.py 项目: relrod/redtape
def search_json(ipa):
    username = request.args.get('username')
    groupname = request.args.get('group')

    res = []

    if username:
        users_ = [User(u) for u in ipa.user_find(username)['result']]

        for user_ in users_:
            uid = user_.username
            cn = user_.name
            if uid is not None:
                # If the cn is None, who cares?
                res.append({ 'uid': uid, 'cn': cn })

    if groupname:
        groups_ = [Group(g) for g in ipa.group_find(groupname)['result']]
        for group_ in groups_:
            cn = group_.name
            description = group_.description
            if cn is not None:
                # If the description is None, who cares?
                res.append({ 'cn': cn, 'description': description })

    return jsonify(res)
示例#3
0
def group(ipa, groupname):
    group = Group(group_or_404(ipa, groupname))
    sponsor_form = AddGroupMemberForm(groupname=groupname)
    remove_form = RemoveGroupMemberForm(groupname=groupname)

    members = [User(u) for u in ipa.user_find(in_group=groupname)['result']]

    batch_methods = [
        {"method": "user_find", "params": [[], {"uid": sponsorname, 'all': True}]}
        for sponsorname in group.sponsors
    ]
    sponsors = [
        User(u['result'][0]) for u in ipa.batch(methods=batch_methods)['results']
    ]

    # We can safely assume g.current_user exists after @with_ipa
    current_user_is_sponsor = g.current_user.username in group.sponsors

    return render_template(
        'group.html',
        group=group,
        members=members,
        sponsors=sponsors,
        sponsor_form=sponsor_form,
        remove_form=remove_form,
        current_user_is_sponsor=current_user_is_sponsor,
    )
示例#4
0
def test_group(dummy_group_dict):
    """Test the Group representation"""
    group = Group(dummy_group_dict)
    assert group.name == "dummy-group"
    assert group.description == "A dummy group"
    assert group.members == ["dummy", "testuser"]
    assert group.sponsors == ["dummy"]
    assert group.dn == "cn=dummy-group,cn=groups,cn=accounts,dc=example,dc=com"
示例#5
0
def user(ipa, username):
    user = User(user_or_404(ipa, username))
    groups_member = [
        Group(g) for g in ipa.group_find(user=username, all=False)['result']
    ]
    groups_managed = [
        Group(g).name for g in ipa.group_find(membermanager_user=username,
                                              all=False)['result']
    ]
    groups = {
        'managed': groups_managed,
        'member': groups_member,
    }
    return render_template(
        'user.html',
        user=user,
        groups=groups,
    )
示例#6
0
def search_json(ipa):
    username = request.args.get('username')
    groupname = request.args.get('group')

    res = []

    if username:
        users_ = [User(u) for u in ipa.user_find(username)['result']]

        for user_ in users_:
            res.append({'uid': user_.username, 'cn': user_.name})

    if groupname:
        groups_ = [Group(g) for g in ipa.group_find(groupname)['result']]
        for group_ in groups_:
            res.append({'cn': group_.name, 'description': group_.description})

    return jsonify(res)
示例#7
0
def group(ipa, groupname):
    group = Group(group_or_404(ipa, groupname))
    sponsor_form = AddGroupMemberForm(groupname=groupname)
    remove_form = RemoveGroupMemberForm(groupname=groupname)

    sponsors = []
    members = [User(u) for u in ipa.user_find(in_group=groupname)['result']]
    for member in members:
        if member.username in group.sponsors:
            sponsors.append(member)

    # We can safely assume g.current_user exists after @with_ipa
    current_user_is_sponsor = g.current_user.username in group.sponsors

    return render_template(
        'group.html',
        group=group,
        members=members,
        sponsors=sponsors,
        sponsor_form=sponsor_form,
        remove_form=remove_form,
        current_user_is_sponsor=current_user_is_sponsor,
    )
示例#8
0
def groups(ipa):
    groups = [Group(g) for g in ipa.group_find()['result']]
    return render_template('groups.html', groups=groups)
示例#9
0
def test_group_eq(dummy_group_dict):
    """Test that Groups can be compared based on their content"""
    group_1 = Group(dummy_group_dict)
    group_2 = Group(dummy_group_dict)
    assert group_1 == group_2
示例#10
0
def test_group_no_dn(dummy_group_dict):
    """Test that we fallback to gecos if there is no displayname"""
    del dummy_group_dict["dn"]
    group = Group(dummy_group_dict)
    assert group.dn is None