Example #1
0
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)
Example #2
0
 def test_determines_superuser(self):
     '''
     Returns true is superuser
     '''
     user = User.objects.create_user('john',
                                     '*****@*****.**',
                                     'johnpassword',
                                     is_superuser=True)
     self.assertTrue(manager_permission(user))
Example #3
0
 def test_determines_no_permission(self):
     '''
     Returns false if no permissions
     '''
     user = User.objects.create_user(
         'john',
         '*****@*****.**',
         'johnpassword',
     )
     self.assertFalse(manager_permission(user))
Example #4
0
 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))
Example #5
0
 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))
Example #6
0
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)
Example #7
0
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)
    }