Revision 14f7f6a5 snf-astakos-app/astakos/im/functions.py

b/snf-astakos-app/astakos/im/functions.py
503 503
    project_id = get_project_id_of_application_id(project_application_id)
504 504
    return do_accept_membership(project_id, user, request_user)
505 505

  
506
def do_accept_membership_checks(project, membership, request_user):
506
def do_accept_membership_checks(project, request_user):
507 507
    checkAllowed(project, request_user)
508 508
    checkAlive(project)
509 509

  
......
514 514
    if project.violates_members_limit(adding=1):
515 515
        raise PermissionDenied(_(astakos_messages.MEMBER_NUMBER_LIMIT_REACHED))
516 516

  
517
    if membership != ProjectMembership.REQUESTED:
518
        m = _(astakos_messages.NOT_MEMBERSHIP_REQUEST)
519
        raise PermissionDenied(m)
520

  
521 517
def do_accept_membership(project_id, user, request_user=None):
522 518
    project = get_project_for_update(project_id)
519
    do_accept_membership_checks(project, request_user)
520

  
523 521
    membership = get_membership_for_update(project, user)
524
    do_accept_membership_checks(project, membership, request_user)
522
    if not membership.can_accept():
523
        m = _(astakos_messages.NOT_MEMBERSHIP_REQUEST)
524
        raise PermissionDenied(m)
525 525

  
526 526
    membership.accept()
527 527
    sync_projects()
......
539 539
    project_id = get_project_id_of_application_id(project_application_id)
540 540
    return do_reject_membership(project_id, user, request_user)
541 541

  
542
def do_reject_membership_checks(project, membership, request_user):
542
def do_reject_membership_checks(project, request_user):
543 543
    checkAllowed(project, request_user)
544 544
    checkAlive(project)
545 545

  
546
    if membership != ProjectMembership.REQUESTED:
547
        m = _(astakos_messages.NOT_MEMBERSHIP_REQUEST)
548
        raise PermissionDenied(m)
549

  
550 546
def do_reject_membership(project_id, user, request_user=None):
551 547
    project = get_project_for_update(project_id)
548
    do_reject_membership_checks(project, request_user)
552 549
    membership = get_membership_for_update(project, user)
553
    do_reject_membership_checks(project, membership, request_user)
550
    if not membership.can_reject():
551
        m = _(astakos_messages.NOT_MEMBERSHIP_REQUEST)
552
        raise PermissionDenied(m)
554 553

  
555 554
    membership.reject()
556 555

  
......
567 566
    project_id = get_project_id_of_application_id(project_application_id)
568 567
    return do_remove_membership(project_id, user, request_user)
569 568

  
570
def do_remove_membership_checks(project, membership, request_user=None):
569
def do_remove_membership_checks(project, request_user=None):
571 570
    checkAllowed(project, request_user)
572 571
    checkAlive(project)
573 572

  
......
575 574
    if leave_policy == CLOSED_POLICY:
576 575
        raise PermissionDenied(_(astakos_messages.MEMBER_LEAVE_POLICY_CLOSED))
577 576

  
578
    if membership.state not in ProjectMembership.ACCEPTED_STATES:
579
        m = _(astakos_messages.NOT_ACCEPTED_MEMBERSHIP)
580
        raise PermissionDenied(m)
581

  
582 577
def do_remove_membership(project_id, user, request_user=None):
583 578
    project = get_project_for_update(project_id)
579
    do_remove_membership_checks(project, request_user)
584 580
    membership = get_membership_for_update(project, user)
585
    do_remove_membership_checks(project, membership, request_user)
581
    if not membership.can_remove():
582
        m = _(astakos_messages.NOT_ACCEPTED_MEMBERSHIP)
583
        raise PermissionDenied(m)
586 584

  
587 585
    membership.remove()
588 586
    sync_projects()
......
597 595

  
598 596
def do_enroll_member(project_id, user, request_user=None):
599 597
    project = get_project_for_update(project_id)
598
    do_accept_membership_checks(project, request_user)
600 599
    membership = create_membership(project_id, user)
601
    do_accept_membership_checks(project, membership, request_user)
600

  
601
    if not membership.can_accept():
602
        m = _(astakos_messages.NOT_MEMBERSHIP_REQUEST)
603
        raise PermissionDenied(m)
602 604

  
603 605
    membership.accept()
604 606
    sync_projects()
......
615 617
    project_id = get_project_id_of_application_id(project_application_id)
616 618
    return do_leave_project(project_id, user_id)
617 619

  
618
def do_leave_project_checks(project, membership):
620
def do_leave_project_checks(project):
619 621
    checkAlive(project)
620 622

  
621 623
    leave_policy = project.application.member_leave_policy
622 624
    if leave_policy == CLOSED_POLICY:
623 625
        raise PermissionDenied(_(astakos_messages.MEMBER_LEAVE_POLICY_CLOSED))
624 626

  
625
    if membership.state not in ProjectMembership.ACCEPTED_STATES:
626
        m = _(astakos_messages.NOT_ACCEPTED_MEMBERSHIP)
627
        raise PermissionDenied(m)
628

  
629 627
def do_leave_project(project_id, user_id):
630 628
    project = get_project_for_update(project_id)
629
    do_leave_project_checks(project)
631 630
    membership = get_membership_for_update(project, user_id)
632
    do_leave_project_checks(project, membership)
631
    if not membership.can_leave():
632
        m = _(astakos_messages.NOT_ACCEPTED_MEMBERSHIP)
633
        raise PermissionDenied(m)
633 634

  
634 635
    leave_policy = project.application.member_leave_policy
635 636
    if leave_policy == AUTO_ACCEPT_POLICY:
......
658 659

  
659 660
def do_join_project(project_id, user_id):
660 661
    project = get_project_for_update(project_id)
661
    membership = create_membership(project, user_id)
662 662
    do_join_project_checks(project)
663
    membership = create_membership(project, user_id)
663 664

  
664 665
    join_policy = project.application.member_join_policy
665 666
    if (join_policy == AUTO_ACCEPT_POLICY and

Also available in: Unified diff