Revision 1a14083b snf-astakos-app/astakos/im/functions.py
b/snf-astakos-app/astakos/im/functions.py | ||
---|---|---|
459 | 459 |
project = get_project_by_id(project_id) |
460 | 460 |
accept_membership_checks(project, request_user) |
461 | 461 |
|
462 |
membership, created = ProjectMembership.objects.get_or_create( |
|
463 |
project=project, |
|
464 |
person=user) |
|
465 |
|
|
466 |
if not membership.can_accept(): |
|
467 |
m = _(astakos_messages.NOT_MEMBERSHIP_REQUEST) |
|
468 |
raise PermissionDenied(m) |
|
462 |
try: |
|
463 |
membership = get_membership(project_id, user.id) |
|
464 |
if not membership.can_enroll(): |
|
465 |
m = _(astakos_messages.MEMBERSHIP_ACCEPTED) |
|
466 |
raise PermissionDenied(m) |
|
467 |
membership.join() |
|
468 |
except IOError: |
|
469 |
membership = new_membership(project, user) |
|
469 | 470 |
|
470 | 471 |
membership.accept() |
471 | 472 |
qh_sync_user(user) |
... | ... | |
539 | 540 |
return False |
540 | 541 |
|
541 | 542 |
m = user.get_membership(project) |
542 |
return not(m) |
|
543 |
if not m: |
|
544 |
return True |
|
545 |
return m.can_join() |
|
546 |
|
|
547 |
|
|
548 |
def new_membership(project, user): |
|
549 |
m = ProjectMembership.objects.create(project=project, person=user) |
|
550 |
m._log_create(None, ProjectMembership.REQUESTED) |
|
551 |
return m |
|
543 | 552 |
|
544 | 553 |
|
545 | 554 |
def join_project(project_id, request_user): |
... | ... | |
547 | 556 |
project = get_project_by_id(project_id) |
548 | 557 |
join_project_checks(project) |
549 | 558 |
|
550 |
membership, created = ProjectMembership.objects.get_or_create( |
|
551 |
project=project, |
|
552 |
person=request_user) |
|
553 |
|
|
554 |
if not created: |
|
555 |
msg = _(astakos_messages.MEMBERSHIP_REQUEST_EXISTS) |
|
556 |
raise PermissionDenied(msg) |
|
559 |
try: |
|
560 |
membership = get_membership(project.id, request_user.id) |
|
561 |
if not membership.can_join(): |
|
562 |
msg = _(astakos_messages.MEMBERSHIP_REQUEST_EXISTS) |
|
563 |
raise PermissionDenied(msg) |
|
564 |
membership.join() |
|
565 |
except IOError: |
|
566 |
membership = new_membership(project, request_user) |
|
557 | 567 |
|
558 | 568 |
auto_accepted = False |
559 | 569 |
join_policy = project.application.member_join_policy |
Also available in: Unified diff