示例#1
0
 def test_superuser_can_always_create(self, admin, org_admin, org_member, alice):
     access = OAuth2ApplicationAccess(admin)
     for user in [admin, org_admin, org_member, alice]:
         assert access.can_add({
             'name': 'test app', 'user': user.pk, 'client_type': 'confidential',
             'authorization_grant_type': 'password'
         })
示例#2
0
 def test_normal_user_cannot_create(self, admin, org_admin, org_member, alice):
     for access_user in [org_member, alice]:
         access = OAuth2ApplicationAccess(access_user)
         for user in [admin, org_admin, org_member, alice]:
             assert not access.can_add({
                 'name': 'test app', 'user': user.pk, 'client_type': 'confidential',
                 'authorization_grant_type': 'password'
             })
示例#3
0
 def test_admin_only_can_read(self, user, organization):
     user = user('org-admin', False)
     organization.admin_role.members.add(user)
     access = OAuth2ApplicationAccess(user)
     app = Application.objects.create(
         name='test app for {}'.format(user.username), user=user, client_type='confidential', authorization_grant_type='password', organization=organization
     )
     assert access.can_read(app) is True
示例#4
0
 def test_can_read(self, admin, org_admin, org_member, alice,
                   user_for_access, can_access_list, organization):
     user_list = [admin, org_admin, org_member, alice]
     access = OAuth2ApplicationAccess(user_list[user_for_access])
     app_creation_user_list = [admin, org_admin]
     for user, can_access in zip(app_creation_user_list, can_access_list):
         app = Application.objects.create(
             name='test app for {}'.format(user.username),
             user=user,
             client_type='confidential',
             authorization_grant_type='password',
             organization=organization)
         assert access.can_read(app) is can_access
示例#5
0
 def test_can_edit_delete_app_admin(self, admin, org_admin, org_member,
                                    alice, organization):
     user_list = [admin, org_admin, org_member, alice]
     can_access_list = [True, True, False, False]
     for user, can_access in zip(user_list, can_access_list):
         app = Application.objects.create(
             name='test app for {}'.format(admin.username),
             user=admin,
             client_type='confidential',
             authorization_grant_type='password',
             organization=organization)
         access = OAuth2ApplicationAccess(user)
         assert access.can_change(app, {}) is can_access
         assert access.can_delete(app) is can_access
示例#6
0
 def test_app_activity_stream(self, org_admin, alice, organization):
     app = Application.objects.create(name='test app for {}'.format(
         org_admin.username),
                                      user=org_admin,
                                      client_type='confidential',
                                      authorization_grant_type='password',
                                      organization=organization)
     access = OAuth2ApplicationAccess(org_admin)
     assert access.can_read(app) is True
     access = ActivityStreamAccess(org_admin)
     activity_stream = ActivityStream.objects.filter(
         o_auth2_application=app).latest('pk')
     assert access.can_read(activity_stream) is True
     access = ActivityStreamAccess(alice)
     assert access.can_read(app) is False
     assert access.can_read(activity_stream) is False
示例#7
0
 def test_token_activity_stream(self, org_admin, alice, organization, post):
     app = Application.objects.create(
         name='test app for {}'.format(org_admin.username),
         user=org_admin,
         client_type='confidential',
         authorization_grant_type='password',
         organization=organization,
     )
     response = post(reverse('api:o_auth2_application_token_list', kwargs={'pk': app.pk}), {'scope': 'read'}, org_admin, expect=201)
     token = AccessToken.objects.get(token=response.data['token'])
     access = OAuth2ApplicationAccess(org_admin)
     assert access.can_read(app) is True
     access = ActivityStreamAccess(org_admin)
     activity_stream = ActivityStream.objects.filter(o_auth2_access_token=token).latest('pk')
     assert access.can_read(activity_stream) is True
     access = ActivityStreamAccess(alice)
     assert access.can_read(token) is False
     assert access.can_read(activity_stream) is False