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