def create_user(request): """ Creates a user based on a request """ try: data = decode_json_content(request.body) if "password2" in data: del data["password2"] data = { camel_case_to_snake(key): data[key] for key in data if data[key] } role = None if data.get('role') and not manager_permission(request.user): return JsonResponse({}, status=403) elif data.get('role'): role = data['role'] del data['role'] user = User.objects.create_user(**data) if role in PERMISSION_CLASSES: user.user_permissions.add(PERMISSION_CLASSES[role]) return JsonResponse({}, status=200) except TypeError as e: return JsonResponse({}, status=422)
def test_determines_superuser(self): ''' Returns true is superuser ''' user = User.objects.create_user('john', '*****@*****.**', 'johnpassword', is_superuser=True) self.assertTrue(manager_permission(user))
def test_determines_no_permission(self): ''' Returns false if no permissions ''' user = User.objects.create_user( 'john', '*****@*****.**', 'johnpassword', ) self.assertFalse(manager_permission(user))
def test_determines_not_a_teller(self): ''' Returns false if someone is just a teller ''' user = User.objects.create_user( 'john', '*****@*****.**', 'johnpassword', ) user.user_permissions.add(self.teller) self.assertFalse(manager_permission(user))
def test_knows_if_someone_is_a_manager(self): ''' Tells if a someone is a manager ''' user = User.objects.create_user( 'john', '*****@*****.**', 'johnpassword', ) user.user_permissions.set([self.manager]) self.assertTrue(manager_permission(user))
def data(request): """ Get Data on a user. """ user = request.user return JsonResponse( { "loggedIn": not user.is_anonymous(), "username": user.username, "isManager": manager_permission(user), "isTeller": teller_permission(user) }, status=200)
def serialize_user(user): ''' Serializes user data ''' return { 'id': user.id, 'username': user.username, 'firstName': user.first_name, 'lastName': user.last_name, 'accounts': serialize_accounts(user.account_set.all()), "isManager": manager_permission(user), "isTeller": teller_permission(user) }