Merge pull request #1513 from anoek/1499

Fix erronous singleton role created for users
This commit is contained in:
Akita Noek 2016-04-12 16:54:19 -04:00
commit 40731f6fc8
2 changed files with 74 additions and 2 deletions

View File

@ -123,10 +123,14 @@ def sync_superuser_status_to_rbac(instance, **kwargs):
def create_user_role(instance, **kwargs):
try:
instance.admin_role
Role.objects.get(
content_type=ContentType.objects.get_for_model(instance),
object_id=instance.id,
name = 'Owner'
)
except Role.DoesNotExist:
role = Role.objects.create(
singleton_name = '%s-admin_role' % instance.username,
name = 'Owner',
content_object = instance,
)
role.members.add(instance)

View File

@ -0,0 +1,68 @@
import pytest
from django.core.urlresolvers import reverse
#
# user creation
#
@pytest.mark.django_db
def test_user_create(post, admin):
response = post(reverse('api:user_list'), {
"username": "affable",
"first_name": "a",
"last_name": "a",
"email": "a@a.com",
"is_superuser": False,
"password": "fo0m4nchU"
}, admin)
assert response.status_code == 201
@pytest.mark.django_db
def test_fail_double_create_user(post, admin):
response = post(reverse('api:user_list'), {
"username": "affable",
"first_name": "a",
"last_name": "a",
"email": "a@a.com",
"is_superuser": False,
"password": "fo0m4nchU"
}, admin)
assert response.status_code == 201
response = post(reverse('api:user_list'), {
"username": "affable",
"first_name": "a",
"last_name": "a",
"email": "a@a.com",
"is_superuser": False,
"password": "fo0m4nchU"
}, admin)
assert response.status_code == 400
@pytest.mark.django_db
def test_create_delete_create_user(post, delete, admin):
response = post(reverse('api:user_list'), {
"username": "affable",
"first_name": "a",
"last_name": "a",
"email": "a@a.com",
"is_superuser": False,
"password": "fo0m4nchU"
}, admin)
assert response.status_code == 201
response = delete(reverse('api:user_detail', args=(response.data['id'],)), admin)
assert response.status_code == 204
response = post(reverse('api:user_list'), {
"username": "affable",
"first_name": "a",
"last_name": "a",
"email": "a@a.com",
"is_superuser": False,
"password": "fo0m4nchU"
}, admin)
print(response.data)
assert response.status_code == 201