Revision a53ec93b snf-astakos-app/astakos/im/functions.py
b/snf-astakos-app/astakos/im/functions.py | ||
---|---|---|
448 | 448 |
accept_membership_checks(membership, request_user) |
449 | 449 |
user = membership.person |
450 | 450 |
membership.perform_action("accept", actor=request_user, reason=reason) |
451 |
quotas.qh_sync_user(user)
|
|
451 |
quotas.qh_sync_membership(membership)
|
|
452 | 452 |
logger.info("User %s has been accepted in %s." % |
453 | 453 |
(user.log_display, project)) |
454 | 454 |
|
... | ... | |
519 | 519 |
remove_membership_checks(membership, request_user) |
520 | 520 |
user = membership.person |
521 | 521 |
membership.perform_action("remove", actor=request_user, reason=reason) |
522 |
quotas.qh_sync_user(user)
|
|
522 |
quotas.qh_sync_membership(membership)
|
|
523 | 523 |
logger.info("User %s has been removed from %s." % |
524 | 524 |
(user.log_display, project)) |
525 | 525 |
|
... | ... | |
552 | 552 |
membership = new_membership(project, user, actor=request_user, |
553 | 553 |
enroll=True) |
554 | 554 |
|
555 |
quotas.qh_sync_user(user)
|
|
555 |
quotas.qh_sync_membership(membership)
|
|
556 | 556 |
logger.info("User %s has been enrolled in %s." % |
557 | 557 |
(membership.person.log_display, project)) |
558 | 558 |
|
... | ... | |
595 | 595 |
leave_policy = project.member_leave_policy |
596 | 596 |
if leave_policy == AUTO_ACCEPT_POLICY: |
597 | 597 |
membership.perform_action("remove", actor=request_user, reason=reason) |
598 |
quotas.qh_sync_user(request_user)
|
|
598 |
quotas.qh_sync_membership(membership)
|
|
599 | 599 |
logger.info("User %s has left %s." % |
600 | 600 |
(request_user.log_display, project)) |
601 | 601 |
auto_accepted = True |
... | ... | |
661 | 661 |
if (join_policy == AUTO_ACCEPT_POLICY and ( |
662 | 662 |
not project.violates_members_limit(adding=1))): |
663 | 663 |
membership.perform_action("accept", actor=request_user, reason=reason) |
664 |
quotas.qh_sync_user(request_user)
|
|
664 |
quotas.qh_sync_membership(membership)
|
|
665 | 665 |
logger.info("User %s joined %s." % |
666 | 666 |
(request_user.log_display, project)) |
667 | 667 |
else: |
... | ... | |
945 | 945 |
if application.name: |
946 | 946 |
check_conflicting_projects(project, application.name) |
947 | 947 |
|
948 |
# Pre-lock members and owner together in order to impose an ordering |
|
949 |
# on locking users |
|
950 |
members = quotas.members_to_sync(project) |
|
951 |
uids_to_sync = [member.id for member in members] |
|
952 |
applicant = application.applicant |
|
953 |
uids_to_sync.append(applicant.id) |
|
954 |
quotas.get_users_for_update(uids_to_sync) |
|
955 |
|
|
956 |
qh_release_pending_app(applicant, locked=True) |
|
948 |
qh_release_pending_app(application.applicant) |
|
957 | 949 |
application.approve(actor=request_user, reason=reason) |
958 | 950 |
|
959 | 951 |
if project.state == Project.UNINITIALIZED: |
... | ... | |
962 | 954 |
_apply_modifications(project, application) |
963 | 955 |
project.activate(actor=request_user, reason=reason) |
964 | 956 |
|
965 |
quotas.qh_sync_locked_users(members)
|
|
957 |
quotas.qh_sync_project(project)
|
|
966 | 958 |
logger.info("%s has been approved." % (application.log_display)) |
967 | 959 |
project_notif.application_notify(application, "approve") |
968 | 960 |
return project |
... | ... | |
1122 | 1114 |
return diff |
1123 | 1115 |
|
1124 | 1116 |
|
1125 |
def qh_add_pending_app(user, project=None, force=False): |
|
1126 |
user = AstakosUser.objects.select_for_update().get(id=user.id) |
|
1117 |
def qh_add_pending_app(user, project=None, force=False, assign_project=None): |
|
1118 |
if assign_project is None: |
|
1119 |
assign_project = user.base_project |
|
1127 | 1120 |
diff = get_pending_app_diff(project) |
1128 |
return quotas.register_pending_apps(user, diff, force) |
|
1121 |
return quotas.register_pending_apps(user, assign_project, |
|
1122 |
diff, force=force) |
|
1129 | 1123 |
|
1130 | 1124 |
|
1131 | 1125 |
def check_pending_app_quota(user, project=None): |
... | ... | |
1138 | 1132 |
return True, None |
1139 | 1133 |
|
1140 | 1134 |
|
1141 |
def qh_release_pending_app(user, locked=False): |
|
1142 |
if not locked: |
|
1143 |
user = AstakosUser.objects.select_for_update().get(id=user.id) |
|
1144 |
quotas.register_pending_apps(user, -1) |
|
1135 |
def qh_release_pending_app(user, assign_project=None): |
|
1136 |
if assign_project is None: |
|
1137 |
assign_project = user.base_project |
|
1138 |
quotas.register_pending_apps(user, assign_project, -1) |
Also available in: Unified diff