Example #1
0
 def test_roles_as_json_with_users_one_user(self):
     role = Role('role1')
     db.session.add(role)
     user = User('username', 'password')
     db.session.add(user)
     user.set_roles(['role1'])
     expected = {'name': 'role1', 'description': '', 'resources': [], 'users': ['username']}
     role_json = role.as_json(with_users=True)
     role_json.pop('id')
     self.assertDictEqual(role_json, expected)
 def add_roles_to_db(num_roles):
     role_names = {'role{}'.format(i) for i in range(1, num_roles + 1)}
     roles = [Role(name=name) for name in role_names]
     for role in roles:
         db.session.add(role)
     db.session.commit()
     return role_names
Example #3
0
 def test_read_all_roles_with_extra_added_roles(self):
     role = Role('role1')
     db.session.add(role)
     response = self.get_with_status_check('/api/roles',
                                           headers=self.headers,
                                           status_code=SUCCESS)
     self.assertSetEqual({role['name']
                          for role in response}, {'admin', 'role1'})
Example #4
0
 def setup_guest_user(self):
     user = add_user('guest', 'guest')
     role = Role('guest', resources=['users'])
     server.database.resource_roles['users'].add('guest')
     db.session.add(user)
     user.roles.append(role)
     db.session.commit()
     return user
Example #5
0
 def test_init_from_database(self):
     role1 = Role('role1', resources=['resource1', 'resource2'])
     db.session.add(role1)
     role2 = Role('role2',
                  resources=['resource2', 'resource3', 'resource4'])
     db.session.add(role2)
     role3 = Role('role3', resources=['resource4', 'resource5'])
     db.session.add(role3)
     db.session.commit()
     initialize_resource_roles_from_database()
     expected = {
         'resource1': {'role1'},
         'resource2': {'role1', 'role2'},
         'resource3': {'role2'},
         'resource4': {'role2', 'role3'},
         'resource5': {'role3'}
     }
     for resource in default_resources:
         expected.update({resource: {'admin'}})
     self.assertDictEqual(server.database.resource_roles, expected)
Example #6
0
 def test_create_user_with_roles(self):
     role = Role('role1')
     db.session.add(role)
     db.session.commit()
     data = {
         'username': '******',
         'password': '******',
         'roles': ['role1']
     }
     response = self.put_with_status_check('/api/users',
                                           headers=self.headers,
                                           content_type='application/json',
                                           data=json.dumps(data),
                                           status_code=OBJECT_CREATED)
     self.assertUserCreatedResponse('username', response)
Example #7
0
 def test_update_user_with_roles(self):
     role = Role('role1')
     db.session.add(role)
     db.session.commit()
     user = User('username', 'supersecretshhhhh')
     db.session.add(user)
     db.session.commit()
     data = {'id': user.id, 'roles': ['role1']}
     response = self.post_with_status_check('/api/users',
                                            headers=self.headers,
                                            content_type='application/json',
                                            data=json.dumps(data),
                                            status_code=SUCCESS)
     self.assertDictEqual(response, user.as_json())
     self.assertSetEqual({role.name for role in user.roles}, {'role1'})
Example #8
0
def user_roles():
    roles = ["customer", "employee", "admin"]
    [db.session.add(Role(id=str(uuid.uuid4()), name=role)) for role in roles]
    db.session.commit()