Revision dc946891 snf-astakos-app/astakos/im/functions.py
b/snf-astakos-app/astakos/im/functions.py | ||
---|---|---|
288 | 288 |
raise IOError(m) |
289 | 289 |
|
290 | 290 |
|
291 |
def get_chain_of_membership_for_update(memb_id): |
|
292 |
m = get_membership_by_id(memb_id) |
|
293 |
return get_chain_for_update(m.project_id) |
|
294 |
|
|
295 |
|
|
291 | 296 |
def get_user_by_id(user_id): |
292 | 297 |
try: |
293 | 298 |
return AstakosUser.objects.get(id=user_id) |
... | ... | |
361 | 366 |
raise PermissionDenied(m) |
362 | 367 |
|
363 | 368 |
|
364 |
def accept_membership(project_id, memb_id, request_user=None): |
|
365 |
get_chain_for_update(project_id) |
|
366 |
|
|
367 |
membership = get_membership_by_id(project_id, memb_id) |
|
369 |
def accept_membership(memb_id, request_user=None): |
|
370 |
get_chain_of_membership_for_update(memb_id) |
|
371 |
membership = get_membership_by_id(memb_id) |
|
368 | 372 |
if not membership.can_accept(): |
369 | 373 |
m = _(astakos_messages.NOT_MEMBERSHIP_REQUEST) |
370 | 374 |
raise PermissionDenied(m) |
... | ... | |
386 | 390 |
checkAlive(project) |
387 | 391 |
|
388 | 392 |
|
389 |
def reject_membership(project_id, memb_id, request_user=None): |
|
390 |
get_chain_for_update(project_id) |
|
391 |
|
|
392 |
membership = get_membership_by_id(project_id, memb_id) |
|
393 |
def reject_membership(memb_id, request_user=None): |
|
394 |
get_chain_of_membership_for_update(memb_id) |
|
395 |
membership = get_membership_by_id(memb_id) |
|
393 | 396 |
if not membership.can_reject(): |
394 | 397 |
m = _(astakos_messages.NOT_MEMBERSHIP_REQUEST) |
395 | 398 |
raise PermissionDenied(m) |
... | ... | |
409 | 412 |
checkAlive(project) |
410 | 413 |
|
411 | 414 |
|
412 |
def cancel_membership(project_id, request_user):
|
|
413 |
get_chain_for_update(project_id)
|
|
415 |
def cancel_membership(memb_id, request_user):
|
|
416 |
get_chain_of_membership_for_update(memb_id)
|
|
414 | 417 |
|
415 |
membership = get_membership(project_id, request_user.id)
|
|
418 |
membership = get_membership_by_id(memb_id)
|
|
416 | 419 |
if not membership.can_cancel(): |
417 | 420 |
m = _(astakos_messages.NOT_MEMBERSHIP_REQUEST) |
418 | 421 |
raise PermissionDenied(m) |
419 | 422 |
|
423 |
if membership.person != request_user: |
|
424 |
raise PermissionDenied() |
|
425 |
|
|
420 | 426 |
project = membership.project |
421 | 427 |
cancel_membership_checks(project) |
422 | 428 |
membership.cancel() |
... | ... | |
434 | 440 |
raise PermissionDenied(m) |
435 | 441 |
|
436 | 442 |
|
437 |
def remove_membership(project_id, memb_id, request_user=None): |
|
438 |
get_chain_for_update(project_id) |
|
439 |
|
|
440 |
membership = get_membership_by_id(project_id, memb_id) |
|
443 |
def remove_membership(memb_id, request_user=None): |
|
444 |
get_chain_of_membership_for_update(memb_id) |
|
445 |
membership = get_membership_by_id(memb_id) |
|
441 | 446 |
if not membership.can_remove(): |
442 | 447 |
m = _(astakos_messages.NOT_ACCEPTED_MEMBERSHIP) |
443 | 448 |
raise PermissionDenied(m) |
... | ... | |
497 | 502 |
return m.can_leave() |
498 | 503 |
|
499 | 504 |
|
500 |
def leave_project(project_id, request_user):
|
|
501 |
get_chain_for_update(project_id)
|
|
505 |
def leave_project(memb_id, request_user):
|
|
506 |
get_chain_of_membership_for_update(memb_id)
|
|
502 | 507 |
|
503 |
membership = get_membership(project_id, request_user.id)
|
|
508 |
membership = get_membership_by_id(memb_id)
|
|
504 | 509 |
if not membership.can_leave(): |
505 | 510 |
m = _(astakos_messages.NOT_ACCEPTED_MEMBERSHIP) |
506 | 511 |
raise PermissionDenied(m) |
507 | 512 |
|
513 |
if membership.person != request_user: |
|
514 |
raise PermissionDenied() |
|
515 |
|
|
508 | 516 |
project = membership.project |
509 | 517 |
leave_project_checks(project) |
510 | 518 |
|
Also available in: Unified diff