def edit_group_view(request):
    name = request.matchdict['name']
    group = Group.get_group(name)
    users = User.get_users()
    member_list = list()
    for member in group.users:
        member_list.append(member.login)

    errors = []
    if request.method == 'POST':
        name = request.POST.get('name', '')
        members_post = request.POST.getall('member')
        if authenticated_userid(request) not in members_post:
            log.debug('AUTHENTICATED USERID NOT IN MEMBERS_POST')
            errors.append('Can\'t remove yourself from this group')
            log.debug(errors)

        if not errors:
            for user in users:
                if user.login in members_post:
                    group.users.append(user)
                elif user.login in member_list and user.login not in members_post:
                    group.users.remove(user)
            group.name = name
            url = request.route_url('groups')
            return HTTPFound(location=url)
         
    return {
        'name': name,
        'users': users,
        'member_list': member_list,
        'errors': errors,
    }
Пример #2
0
def edit_group_view(request):
    name = request.matchdict["name"]
    group = Group.get_group(name)
    users = User.get_users()
    members_db = list()
    for member in group.users:
        members_db.append(member.login)

    errors = []
    if request.method == "POST":
        name = request.POST.get("name", "")
        members_post = request.POST.getall("member")

        if not errors:
            for user in users:
                if user.login in members_post:
                    group.users.append(user)
                elif user.login in members_db and user.login not in members_post:
                    group.users.remove(user)
            url = request.route_url("home")
            return HTTPFound(location=url)

    return {"name": name, "users": users, "members_db": members_db, "errors": errors}