Revision dc946891 snf-astakos-app/astakos/im/functions.py

b/snf-astakos-app/astakos/im/functions.py
288 288
        raise IOError(m)
289 289

  
290 290

  
291
def get_chain_of_membership_for_update(memb_id):
292
    m = get_membership_by_id(memb_id)
293
    return get_chain_for_update(m.project_id)
294

  
295

  
291 296
def get_user_by_id(user_id):
292 297
    try:
293 298
        return AstakosUser.objects.get(id=user_id)
......
361 366
        raise PermissionDenied(m)
362 367

  
363 368

  
364
def accept_membership(project_id, memb_id, request_user=None):
365
    get_chain_for_update(project_id)
366

  
367
    membership = get_membership_by_id(project_id, memb_id)
369
def accept_membership(memb_id, request_user=None):
370
    get_chain_of_membership_for_update(memb_id)
371
    membership = get_membership_by_id(memb_id)
368 372
    if not membership.can_accept():
369 373
        m = _(astakos_messages.NOT_MEMBERSHIP_REQUEST)
370 374
        raise PermissionDenied(m)
......
386 390
    checkAlive(project)
387 391

  
388 392

  
389
def reject_membership(project_id, memb_id, request_user=None):
390
    get_chain_for_update(project_id)
391

  
392
    membership = get_membership_by_id(project_id, memb_id)
393
def reject_membership(memb_id, request_user=None):
394
    get_chain_of_membership_for_update(memb_id)
395
    membership = get_membership_by_id(memb_id)
393 396
    if not membership.can_reject():
394 397
        m = _(astakos_messages.NOT_MEMBERSHIP_REQUEST)
395 398
        raise PermissionDenied(m)
......
409 412
    checkAlive(project)
410 413

  
411 414

  
412
def cancel_membership(project_id, request_user):
413
    get_chain_for_update(project_id)
415
def cancel_membership(memb_id, request_user):
416
    get_chain_of_membership_for_update(memb_id)
414 417

  
415
    membership = get_membership(project_id, request_user.id)
418
    membership = get_membership_by_id(memb_id)
416 419
    if not membership.can_cancel():
417 420
        m = _(astakos_messages.NOT_MEMBERSHIP_REQUEST)
418 421
        raise PermissionDenied(m)
419 422

  
423
    if membership.person != request_user:
424
        raise PermissionDenied()
425

  
420 426
    project = membership.project
421 427
    cancel_membership_checks(project)
422 428
    membership.cancel()
......
434 440
        raise PermissionDenied(m)
435 441

  
436 442

  
437
def remove_membership(project_id, memb_id, request_user=None):
438
    get_chain_for_update(project_id)
439

  
440
    membership = get_membership_by_id(project_id, memb_id)
443
def remove_membership(memb_id, request_user=None):
444
    get_chain_of_membership_for_update(memb_id)
445
    membership = get_membership_by_id(memb_id)
441 446
    if not membership.can_remove():
442 447
        m = _(astakos_messages.NOT_ACCEPTED_MEMBERSHIP)
443 448
        raise PermissionDenied(m)
......
497 502
    return m.can_leave()
498 503

  
499 504

  
500
def leave_project(project_id, request_user):
501
    get_chain_for_update(project_id)
505
def leave_project(memb_id, request_user):
506
    get_chain_of_membership_for_update(memb_id)
502 507

  
503
    membership = get_membership(project_id, request_user.id)
508
    membership = get_membership_by_id(memb_id)
504 509
    if not membership.can_leave():
505 510
        m = _(astakos_messages.NOT_ACCEPTED_MEMBERSHIP)
506 511
        raise PermissionDenied(m)
507 512

  
513
    if membership.person != request_user:
514
        raise PermissionDenied()
515

  
508 516
    project = membership.project
509 517
    leave_project_checks(project)
510 518

  

Also available in: Unified diff