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)
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)