Revision 3848b521
b/snf-astakos-app/astakos/im/management/commands/quota.py | ||
---|---|---|
113 | 113 |
if user_ident is not None: |
114 | 114 |
users = [self.get_user(user_ident)] |
115 | 115 |
else: |
116 |
users = AstakosUser.objects.moderated()
|
|
116 |
users = AstakosUser.objects.accepted()
|
|
117 | 117 |
|
118 | 118 |
if list_only: |
119 | 119 |
qh_quotas, astakos_i = list_user_quotas(users) |
... | ... | |
150 | 150 |
else: |
151 | 151 |
raise CommandError('Please specify user by uuid or email') |
152 | 152 |
|
153 |
if not user.moderated:
|
|
154 |
raise CommandError('%s is not an accepted user.\n' % user.uuid)
|
|
153 |
if not user.is_accepted():
|
|
154 |
raise CommandError('%s is not an accepted user.' % user.uuid) |
|
155 | 155 |
|
156 | 156 |
return user |
157 | 157 |
|
b/snf-astakos-app/astakos/im/management/commands/reconcile-resources-astakos.py | ||
---|---|---|
82 | 82 |
qh_holdings = service_get_quotas(astakos, query) |
83 | 83 |
|
84 | 84 |
if userid is None: |
85 |
users = AstakosUser.objects.moderated()
|
|
85 |
users = AstakosUser.objects.accepted()
|
|
86 | 86 |
else: |
87 | 87 |
try: |
88 |
users = [AstakosUser.objects.get(uuid=userid)]
|
|
88 |
user = AstakosUser.objects.get(uuid=userid)
|
|
89 | 89 |
except AstakosUser.DoesNotExist: |
90 | 90 |
raise CommandError("There is no user with uuid '%s'." % userid) |
91 |
if not user.is_accepted(): |
|
92 |
raise CommandError("%s is not an accepted user." % userid) |
|
93 |
users = [user] |
|
91 | 94 |
|
92 | 95 |
db_holdings = count_pending_app(users) |
93 | 96 |
|
b/snf-astakos-app/astakos/im/models.py | ||
---|---|---|
315 | 315 |
def verified(self): |
316 | 316 |
return self.filter(email_verified=True) |
317 | 317 |
|
318 |
def moderated(self):
|
|
319 |
return self.filter(moderated=True) |
|
318 |
def accepted(self):
|
|
319 |
return self.filter(moderated=True, is_rejected=False)
|
|
320 | 320 |
|
321 | 321 |
def uuid_catalog(self, l=None): |
322 | 322 |
""" |
... | ... | |
482 | 482 |
group, _ = Group.objects.get_or_create(name=gname) |
483 | 483 |
self.groups.add(group) |
484 | 484 |
|
485 |
def is_accepted(self): |
|
486 |
return self.moderated and not self.is_rejected |
|
487 |
|
|
485 | 488 |
def is_project_admin(self, application_id=None): |
486 | 489 |
return self.uuid in astakos_settings.PROJECT_ADMINS |
487 | 490 |
|
b/snf-astakos-app/astakos/im/quotas.py | ||
---|---|---|
316 | 316 |
|
317 | 317 |
|
318 | 318 |
def qh_add_resource_limit(resource, diff): |
319 |
objs = AstakosUser.forupdate.filter(Q(moderated=True) &
|
|
320 |
~Q(policy=resource))
|
|
319 |
objs = AstakosUser.forupdate.filter( |
|
320 |
Q(moderated=True, is_rejected=False) & ~Q(policy=resource))
|
|
321 | 321 |
users = objs.order_by('id').select_for_update() |
322 | 322 |
uuids = [u.uuid for u in users] |
323 | 323 |
qh.add_resource_limit(holders=uuids, sources=[SYSTEM], |
... | ... | |
326 | 326 |
|
327 | 327 |
def qh_sync_new_resource(resource, limit): |
328 | 328 |
users = AstakosUser.forupdate.filter( |
329 |
moderated=True).order_by('id').select_for_update() |
|
329 |
moderated=True, is_rejected=False).order_by('id').select_for_update()
|
|
330 | 330 |
|
331 | 331 |
resource_name = resource.name |
332 | 332 |
data = [] |
b/snf-astakos-app/astakos/im/tests/api.py | ||
---|---|---|
74 | 74 |
# create user |
75 | 75 |
user = get_local_user('test@grnet.gr') |
76 | 76 |
backend.accept_user(user) |
77 |
non_moderated_user = get_local_user('nonmon@example.com') |
|
77 |
non_moderated_user = get_local_user('nonmon@example.com', |
|
78 |
is_active=False) |
|
79 |
r_user = get_local_user('rej@example.com', |
|
80 |
is_active=False, email_verified=True) |
|
81 |
backend.reject_user(r_user, "reason") |
|
78 | 82 |
|
79 | 83 |
component2 = Component.objects.create(name="comp2") |
80 | 84 |
register.add_service(component2, "service2", "type2", []) |
... | ... | |
112 | 116 |
|
113 | 117 |
nmheaders = {'HTTP_X_AUTH_TOKEN': non_moderated_user.auth_token} |
114 | 118 |
r = client.get(u('quotas/'), **nmheaders) |
115 |
self.assertEqual(r.status_code, 200) |
|
116 |
body = json.loads(r.content) |
|
117 |
self.assertEqual(body, {}) |
|
119 |
self.assertEqual(r.status_code, 401) |
|
120 |
|
|
121 |
q = quotas.get_user_quotas(non_moderated_user) |
|
122 |
self.assertEqual(q, {}) |
|
123 |
|
|
124 |
q = quotas.get_user_quotas(r_user) |
|
125 |
self.assertEqual(q, {}) |
|
118 | 126 |
|
119 | 127 |
r = client.get(u('service_quotas')) |
120 | 128 |
self.assertEqual(r.status_code, 401) |
Also available in: Unified diff