Ejemplo n.º 1
0
def change_users_role_in_group(request):
    """Handling request for updating user's role in group.
    Args:
        request (HttpRequest): request from server which contain
        email, is_admin and group_id
    Returns:
        HttpResponse object.
    """
    data = json.loads(request.body)
    user_email = data["user_email"]
    group_id = data["group_id"]
    is_admin = data["is_admin"]
    user_to_change = UserProfile.get_by_email(user_email)
    is_admin = True if is_admin == 'Admin' else False
    user = request.user
    if user:
        if not is_user_admin_group(group_id, user):
            return HttpResponse(status=409)
        if not is_user_in_group(group_id, user_to_change.id):
            return HttpResponse(status=406)
        group = UsersInGroups.group_data_for_user_by_group_id(
            group_id, user_to_change)
        group.is_admin = is_admin
        try:
            group.save()
        except (ValueError, AttributeError):
            return HttpResponse(status=400)
    return HttpResponse(status=200)
Ejemplo n.º 2
0
def add_new_users_to_group(request):
    """Handling request for adding new user to group.
   Args:
       request (HttpRequest): request from server which contain
           email, group and is_admin(True or False)
   Returns:
       HttpResponse object.
   """
    data = json.loads(request.body)
    user = request.user
    if not is_valid_data_add_user_to_group(data):
        return HttpResponse(status=400)
    user_add = UserProfile.get_by_email(data["users_email"])
    is_admin = data["is_admin"]
    group = Group.get_group_by_id(data["group_id"])
    if not is_user_admin_group(group.id, user):
        return HttpResponse(status=403)
    if is_user_in_group(group, user_add):
        return HttpResponse(status=409)
    if not user_add and not group:
        return HttpResponse(status=406)
    if user:
        new_user = UsersInGroups(user=user_add, group=group, is_admin=is_admin)
        try:
            new_user.save()
        except (AttributeError, ValueError):
            return HttpResponse(status=400)
    return HttpResponse(status=201)