mirror of
https://github.com/ansible/awx.git
synced 2026-03-20 18:37:39 -02:30
Merge pull request #1513 from anoek/1499
Fix erronous singleton role created for users
This commit is contained in:
@@ -123,10 +123,14 @@ def sync_superuser_status_to_rbac(instance, **kwargs):
|
|||||||
|
|
||||||
def create_user_role(instance, **kwargs):
|
def create_user_role(instance, **kwargs):
|
||||||
try:
|
try:
|
||||||
instance.admin_role
|
Role.objects.get(
|
||||||
|
content_type=ContentType.objects.get_for_model(instance),
|
||||||
|
object_id=instance.id,
|
||||||
|
name = 'Owner'
|
||||||
|
)
|
||||||
except Role.DoesNotExist:
|
except Role.DoesNotExist:
|
||||||
role = Role.objects.create(
|
role = Role.objects.create(
|
||||||
singleton_name = '%s-admin_role' % instance.username,
|
name = 'Owner',
|
||||||
content_object = instance,
|
content_object = instance,
|
||||||
)
|
)
|
||||||
role.members.add(instance)
|
role.members.add(instance)
|
||||||
|
|||||||
68
awx/main/tests/functional/api/test_user.py
Normal file
68
awx/main/tests/functional/api/test_user.py
Normal 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
|
||||||
Reference in New Issue
Block a user