Compare commits

..

2 Commits

+38 -9
View File
@@ -164,15 +164,40 @@ def _display_username(user_value):
return ''
raw_value = str(user_value).strip()
user_doc = us.get_user_by_id(raw_value)
if not user_doc:
user_doc = us.get_user_by_student_card(raw_value)
if not user_doc:
user_doc = us.get_user_by_student_card_record_id(raw_value)
if user_doc:
return str(user_doc.get('Username') or user_doc.get('username') or raw_value)
decrypted_value = decrypt_text(raw_value)
lookup_values = [raw_value]
if decrypted_value and decrypted_value not in lookup_values:
lookup_values.append(str(decrypted_value).strip())
return decrypt_text(raw_value)
for lookup_value in lookup_values:
user_doc = us.get_user_by_id(lookup_value)
if not user_doc:
user_doc = us.get_user_by_student_card(lookup_value)
if not user_doc:
user_doc = us.get_user_by_student_card_record_id(lookup_value)
if not user_doc:
user_doc = us.get_user(lookup_value)
if user_doc:
return str(user_doc.get('Username') or user_doc.get('username') or lookup_value)
client = None
try:
client = MongoClient(MONGODB_HOST, MONGODB_PORT)
cards = get_tenant_db(client)['student_cards']
card_queries = [{'AusweisId': lookup_value} for lookup_value in lookup_values]
if ObjectId.is_valid(raw_value):
card_queries.insert(0, {'_id': ObjectId(raw_value)})
card = cards.find_one({'$or': card_queries}) if card_queries else None
if card:
card = _decrypt_student_card_doc(card)
card_name = str(card.get('SchülerName') or '').strip()
if card_name:
return card_name
finally:
if client:
client.close()
return str(decrypted_value or raw_value)
def _resolve_library_card_id(user_value):
@@ -186,7 +211,11 @@ def _resolve_library_card_id(user_value):
return str(user_doc.get('StudentCardId') or raw_value).strip().upper()
decrypted_value = decrypt_text(raw_value)
user_doc = us.get_user_by_student_card(decrypted_value)
user_doc = us.get_user_by_id(decrypted_value)
if not user_doc:
user_doc = us.get_user_by_student_card(decrypted_value)
if not user_doc:
user_doc = us.get_user_by_student_card_record_id(decrypted_value)
if user_doc:
return str(user_doc.get('StudentCardId') or decrypted_value).strip().upper()