Revision 7f3c4920 snf-astakos-app/astakos/im/functions.py
b/snf-astakos-app/astakos/im/functions.py | ||
---|---|---|
470 | 470 |
raise IOError(m) |
471 | 471 |
|
472 | 472 |
|
473 |
def get_membership_for_update_by_id(project_id, memb_id): |
|
474 |
try: |
|
475 |
objs = ProjectMembership.objects |
|
476 |
return objs.get_for_update(project__id=project_id, |
|
477 |
id=memb_id) |
|
478 |
except ProjectMembership.DoesNotExist: |
|
479 |
m = _(astakos_messages.NOT_MEMBERSHIP_REQUEST) |
|
480 |
raise IOError(m) |
|
481 |
|
|
482 |
|
|
473 | 483 |
def checkAllowed(entity, request_user, admin_only=False): |
474 | 484 |
if isinstance(entity, Project): |
475 | 485 |
application = entity.application |
... | ... | |
509 | 519 |
raise PermissionDenied(m) |
510 | 520 |
|
511 | 521 |
|
512 |
def accept_membership(project_id, user_id, request_user=None):
|
|
522 |
def accept_membership(project_id, memb_id, request_user=None):
|
|
513 | 523 |
project = get_project_for_update(project_id) |
514 | 524 |
accept_membership_checks(project, request_user) |
515 | 525 |
|
516 |
membership = get_membership_for_update(project_id, user_id)
|
|
526 |
membership = get_membership_for_update_by_id(project_id, memb_id)
|
|
517 | 527 |
if not membership.can_accept(): |
518 | 528 |
m = _(astakos_messages.NOT_MEMBERSHIP_REQUEST) |
519 | 529 |
raise PermissionDenied(m) |
520 | 530 |
|
531 |
user = membership.person |
|
521 | 532 |
membership.accept() |
522 |
qh_sync_user(user_id)
|
|
533 |
qh_sync_user(user.id)
|
|
523 | 534 |
logger.info("User %s has been accepted in %s." % |
524 |
(membership.person.log_display, project))
|
|
535 |
(user.log_display, project))
|
|
525 | 536 |
|
526 |
membership_change_notify(project, membership.person, 'accepted')
|
|
537 |
membership_change_notify(project, user, 'accepted')
|
|
527 | 538 |
return membership |
528 | 539 |
|
529 | 540 |
|
... | ... | |
532 | 543 |
checkAlive(project) |
533 | 544 |
|
534 | 545 |
|
535 |
def reject_membership(project_id, user_id, request_user=None):
|
|
546 |
def reject_membership(project_id, memb_id, request_user=None):
|
|
536 | 547 |
project = get_project_for_update(project_id) |
537 | 548 |
reject_membership_checks(project, request_user) |
538 |
membership = get_membership_for_update(project_id, user_id)
|
|
549 |
membership = get_membership_for_update_by_id(project_id, memb_id)
|
|
539 | 550 |
if not membership.can_reject(): |
540 | 551 |
m = _(astakos_messages.NOT_MEMBERSHIP_REQUEST) |
541 | 552 |
raise PermissionDenied(m) |
542 | 553 |
|
554 |
user = membership.person |
|
543 | 555 |
membership.reject() |
544 | 556 |
logger.info("Request of user %s for %s has been rejected." % |
545 |
(membership.person.log_display, project))
|
|
557 |
(user.log_display, project))
|
|
546 | 558 |
|
547 |
membership_change_notify(project, membership.person, 'rejected')
|
|
559 |
membership_change_notify(project, user, 'rejected')
|
|
548 | 560 |
return membership |
549 | 561 |
|
550 | 562 |
|
... | ... | |
575 | 587 |
raise PermissionDenied(m) |
576 | 588 |
|
577 | 589 |
|
578 |
def remove_membership(project_id, user_id, request_user=None):
|
|
590 |
def remove_membership(project_id, memb_id, request_user=None):
|
|
579 | 591 |
project = get_project_for_update(project_id) |
580 | 592 |
remove_membership_checks(project, request_user) |
581 |
membership = get_membership_for_update(project_id, user_id)
|
|
593 |
membership = get_membership_for_update_by_id(project_id, memb_id)
|
|
582 | 594 |
if not membership.can_remove(): |
583 | 595 |
m = _(astakos_messages.NOT_ACCEPTED_MEMBERSHIP) |
584 | 596 |
raise PermissionDenied(m) |
585 | 597 |
|
598 |
user = membership.person |
|
586 | 599 |
membership.remove() |
587 |
qh_sync_user(user_id)
|
|
600 |
qh_sync_user(user.id)
|
|
588 | 601 |
logger.info("User %s has been removed from %s." % |
589 |
(membership.person.log_display, project))
|
|
602 |
(user.log_display, project))
|
|
590 | 603 |
|
591 |
membership_change_notify(project, membership.person, 'removed')
|
|
604 |
membership_change_notify(project, user, 'removed')
|
|
592 | 605 |
return membership |
593 | 606 |
|
594 | 607 |
|
Also available in: Unified diff