Revision 71c741dc snf-astakos-app/astakos/im/functions.py
b/snf-astakos-app/astakos/im/functions.py | ||
---|---|---|
411 | 411 |
|
412 | 412 |
|
413 | 413 |
def accept_membership_checks(membership, request_user): |
414 |
if not membership.can_accept():
|
|
414 |
if not membership.check_action("accept"):
|
|
415 | 415 |
m = _(astakos_messages.NOT_MEMBERSHIP_REQUEST) |
416 | 416 |
raise ProjectConflict(m) |
417 | 417 |
|
... | ... | |
424 | 424 |
membership = get_membership_by_id(memb_id) |
425 | 425 |
accept_membership_checks(membership, request_user) |
426 | 426 |
user = membership.person |
427 |
membership.accept()
|
|
427 |
membership.perform_action("accept")
|
|
428 | 428 |
qh_sync_user(user) |
429 | 429 |
logger.info("User %s has been accepted in %s." % |
430 | 430 |
(user.log_display, project)) |
... | ... | |
434 | 434 |
|
435 | 435 |
|
436 | 436 |
def reject_membership_checks(membership, request_user): |
437 |
if not membership.can_reject():
|
|
437 |
if not membership.check_action("reject"):
|
|
438 | 438 |
m = _(astakos_messages.NOT_MEMBERSHIP_REQUEST) |
439 | 439 |
raise ProjectConflict(m) |
440 | 440 |
|
... | ... | |
448 | 448 |
membership = get_membership_by_id(memb_id) |
449 | 449 |
reject_membership_checks(membership, request_user) |
450 | 450 |
user = membership.person |
451 |
membership.reject()
|
|
451 |
membership.perform_action("reject")
|
|
452 | 452 |
logger.info("Request of user %s for %s has been rejected." % |
453 | 453 |
(user.log_display, project)) |
454 | 454 |
|
... | ... | |
457 | 457 |
|
458 | 458 |
|
459 | 459 |
def cancel_membership_checks(membership, request_user): |
460 |
if not membership.can_cancel():
|
|
460 |
if not membership.check_action("cancel"):
|
|
461 | 461 |
m = _(astakos_messages.NOT_MEMBERSHIP_REQUEST) |
462 | 462 |
raise ProjectConflict(m) |
463 | 463 |
|
... | ... | |
470 | 470 |
project = get_project_of_membership_for_update(memb_id) |
471 | 471 |
membership = get_membership_by_id(memb_id) |
472 | 472 |
cancel_membership_checks(membership, request_user) |
473 |
membership.cancel()
|
|
473 |
membership.perform_action("cancel")
|
|
474 | 474 |
logger.info("Request of user %s for %s has been cancelled." % |
475 | 475 |
(membership.person.log_display, project)) |
476 | 476 |
|
477 | 477 |
|
478 | 478 |
def remove_membership_checks(membership, request_user=None): |
479 |
if not membership.can_remove():
|
|
479 |
if not membership.check_action("remove"):
|
|
480 | 480 |
m = _(astakos_messages.NOT_ACCEPTED_MEMBERSHIP) |
481 | 481 |
raise ProjectConflict(m) |
482 | 482 |
|
... | ... | |
495 | 495 |
membership = get_membership_by_id(memb_id) |
496 | 496 |
remove_membership_checks(membership, request_user) |
497 | 497 |
user = membership.person |
498 |
membership.remove()
|
|
498 |
membership.perform_action("remove")
|
|
499 | 499 |
qh_sync_user(user) |
500 | 500 |
logger.info("User %s has been removed from %s." % |
501 | 501 |
(user.log_display, project)) |
... | ... | |
514 | 514 |
|
515 | 515 |
try: |
516 | 516 |
membership = get_membership(project_id, user.id) |
517 |
if not membership.can_enroll():
|
|
517 |
if not membership.check_action("enroll"):
|
|
518 | 518 |
m = _(astakos_messages.MEMBERSHIP_ACCEPTED) |
519 | 519 |
raise ProjectConflict(m) |
520 |
membership.join()
|
|
520 |
membership.perform_action("join")
|
|
521 | 521 |
except ProjectNotFound: |
522 | 522 |
membership = new_membership(project, user) |
523 | 523 |
|
524 |
membership.accept()
|
|
524 |
membership.perform_action("accept")
|
|
525 | 525 |
qh_sync_user(user) |
526 | 526 |
logger.info("User %s has been enrolled in %s." % |
527 | 527 |
(membership.person.log_display, project)) |
... | ... | |
531 | 531 |
|
532 | 532 |
|
533 | 533 |
def leave_project_checks(membership, request_user): |
534 |
if not membership.can_leave():
|
|
534 |
if not membership.check_action("leave"):
|
|
535 | 535 |
m = _(astakos_messages.NOT_ACCEPTED_MEMBERSHIP) |
536 | 536 |
raise ProjectConflict(m) |
537 | 537 |
|
... | ... | |
564 | 564 |
auto_accepted = False |
565 | 565 |
leave_policy = project.application.member_leave_policy |
566 | 566 |
if leave_policy == AUTO_ACCEPT_POLICY: |
567 |
membership.remove()
|
|
567 |
membership.perform_action("remove")
|
|
568 | 568 |
qh_sync_user(request_user) |
569 | 569 |
logger.info("User %s has left %s." % |
570 | 570 |
(request_user.log_display, project)) |
571 | 571 |
auto_accepted = True |
572 | 572 |
else: |
573 |
membership.leave_request()
|
|
573 |
membership.perform_action("leave_request")
|
|
574 | 574 |
logger.info("User %s requested to leave %s." % |
575 | 575 |
(request_user.log_display, project)) |
576 | 576 |
membership_leave_request_notify(project, membership.person) |
... | ... | |
595 | 595 |
m = user.get_membership(project) |
596 | 596 |
if not m: |
597 | 597 |
return True |
598 |
return m.can_join()
|
|
598 |
return m.check_action("join")
|
|
599 | 599 |
|
600 | 600 |
|
601 | 601 |
def new_membership(project, user): |
... | ... | |
610 | 610 |
|
611 | 611 |
try: |
612 | 612 |
membership = get_membership(project.id, request_user.id) |
613 |
if not membership.can_join():
|
|
613 |
if not membership.check_action("join"):
|
|
614 | 614 |
msg = _(astakos_messages.MEMBERSHIP_ASSOCIATED) |
615 | 615 |
raise ProjectConflict(msg) |
616 |
membership.join()
|
|
616 |
membership.perform_action("join")
|
|
617 | 617 |
except ProjectNotFound: |
618 | 618 |
membership = new_membership(project, request_user) |
619 | 619 |
|
620 | 620 |
join_policy = project.application.member_join_policy |
621 | 621 |
if (join_policy == AUTO_ACCEPT_POLICY and ( |
622 | 622 |
not project.violates_members_limit(adding=1))): |
623 |
membership.accept()
|
|
623 |
membership.perform_action("accept")
|
|
624 | 624 |
qh_sync_user(request_user) |
625 | 625 |
logger.info("User %s joined %s." % |
626 | 626 |
(request_user.log_display, project)) |
Also available in: Unified diff