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 )
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)
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, )
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"
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, )
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)
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, )
def groups(ipa): groups = [Group(g) for g in ipa.group_find()['result']] return render_template('groups.html', groups=groups)
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
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