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