56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
# @FileName: format_username.py
|
||
# @Software:
|
||
# @Author: Leven Xiang
|
||
# @Mail: xiangle0109@outlook.com
|
||
# @Date: 2021/4/19 9:17
|
||
|
||
import re
|
||
|
||
|
||
def get_email_from_userinfo(user_info):
|
||
if user_info.get('email') not in ['', None]:
|
||
return True, user_info.get('email')
|
||
elif user_info.get('biz_mail') not in ['', None]:
|
||
return True, user_info.get('biz_mail')
|
||
elif user_info.get('orgEmail') not in ['', None]:
|
||
return True, user_info.get('orgEmail')
|
||
else:
|
||
return False, "当前用户的邮箱或企业邮箱均没配置,请先完善个人信息!"
|
||
|
||
|
||
def format2username(account):
|
||
"""
|
||
格式化账号,统一输出为用户名格式
|
||
:param account 用户账号可以是邮箱、DOMAIN\\username、username格式。
|
||
:return: username
|
||
"""
|
||
|
||
if account is None:
|
||
return False, NameError(
|
||
"传入的用户账号为空!".format(account))
|
||
try:
|
||
mail_compile = re.compile(r'(.*)@(.*)')
|
||
domain_compile = re.compile(r'(.*)\\(.*)')
|
||
|
||
if re.fullmatch(mail_compile, account):
|
||
return True, re.fullmatch(mail_compile, account).group(1)
|
||
elif re.fullmatch(domain_compile, account):
|
||
return True, re.fullmatch(domain_compile, account).group(2)
|
||
else:
|
||
return True, account.lower()
|
||
except Exception as e:
|
||
return False, NameError("格式化失败,注意:account用户账号是邮箱或DOMAIN\\username或username格式,错误信息[{}]".format(account, e))
|
||
|
||
|
||
def get_user_is_active(user_info):
|
||
try:
|
||
return True, user_info.get('active') or user_info.get('status')
|
||
except Exception as e:
|
||
return False, 'get_user_is_active: %s' % str(e)
|
||
|
||
except (KeyError, IndexError) as k_error:
|
||
return False, 'get_user_is_active: %s' % str(k_error)
|
||
|