diff --git a/endorsement/dao/office.py b/endorsement/dao/office.py index 2e4e475d..2081e83d 100644 --- a/endorsement/dao/office.py +++ b/endorsement/dao/office.py @@ -19,17 +19,26 @@ def is_office_permitted(netid): """ test for office mailbox availability + NOTE: test both o365 and o365student services """ - o365 = get_endorsement_service('o365') endorsee = get_endorsee_model(netid) - for er in EndorsementRecord.objects.get_endorsements_for_endorsee( - endorsee, o365.category_code): + o365 = get_endorsement_service('o365') + o365_student = get_endorsement_service('o365student') + + records = EndorsementRecord.objects.get_endorsements_for_endorsee( + endorsee, o365.category_code) |\ + EndorsementRecord.objects.get_endorsements_for_endorsee( + endorsee, o365_student.category_code) + + for er in records: if er.datetime_endorsed and not er.datetime_expired: return True # if no endorsement record, check subscription_codes try: - return active_subscriptions_for_netid(netid, o365.subscription_codes) + subscription_codes = list(set( + o365.subscription_codes + o365_student.subscription_codes)) + return active_subscriptions_for_netid(netid, subscription_codes) except Exception as ex: logger.error("is_office_permitted: {}: {}".format(netid, ex)) pass diff --git a/endorsement/dao/uwnetid_subscriptions.py b/endorsement/dao/uwnetid_subscriptions.py index 2a9178ec..15084d56 100644 --- a/endorsement/dao/uwnetid_subscriptions.py +++ b/endorsement/dao/uwnetid_subscriptions.py @@ -17,9 +17,12 @@ def active_subscriptions_for_netid(netid, subscription_codes): response = get_netid_subscriptions(netid, subscription_codes) for sub in response: if (sub.subscription_code in subscription_codes and - sub.status_code != Subscription.STATUS_UNPERMITTED): - subscription_codes.remove(sub.subscription_code) - return len(subscription_codes) == 0 + sub.status_code in [ + Subscription.STATUS_ACTIVE, + Subscription.STATUS_PENDING]): + return True + + return False def activate_subscriptions(endorsee_netid, endorser_netid, subscriptions):