def find_possible_mid(uid: str, mail: Optional[str] = None) -> str: ''' Find any possible mattermost user id Args: uid (str): User id. mail (str): User email address. Returns: Return the user's mattermost id or `''`. ''' mml = MattermostLink(uid) if not mml: return '' if mml.raw and 'data' in mml.raw and 'user_id' in mml.raw['data']: return str(mml.raw['data']['user_id']) if mail is None: oauth = OAuthDB().find_one({'owner': uid}, {'_id': 1}) if oauth: mail = oauth['_id'] if mail: mm_user = MattermostUsersDB().find_one({'email': mail.strip()}, {'_id': 1}) if mm_user: return str(mm_user['_id']) return ''
def service_sync_mattermost_users(sender, **kwargs): mmb = MattermostBot(token=setting.MATTERMOST_BOT_TOKEN, base_url=setting.MATTERMOST_BASEURL) total_users_count = mmb.get_users_stats().json()['total_users_count'] db_count = MattermostUsersDB().count_documents({}) logger.info('total_users_count: %s, db_count: %s' % (total_users_count, db_count)) if (db_count - 3) < total_users_count or 'force' in kwargs: mmusers_db = MattermostUsersDB() n = 0 for u in mmb.get_users_loop(): n += 1 mmusers_db.save(data=u) logger.info('Sync count: %s' % n)
def find_user_name(mid): ''' Find user_name by mid :param str mid: mid ''' ml = MattermostLinkDB().find_one({'data.user_id': mid}, {'data.user_name': 1}) if ml and 'data' in ml: return ml['data']['user_name'] mm_user = MattermostUsersDB().find_one({'_id': mid}, {'username': 1}) if mm_user: return mm_user['username'] return u''
def make_index() -> None: ''' Make index for the collection with `index()` ''' BudgetDB().index() ExpenseDB().index() FormDB().index() MailLetterDB().index() MattermostLinkDB().index() MattermostUsersDB().index() OAuthDB().index() ProjectDB(pid='').index() SenderReceiverDB().index() TeamDB(pid='', tid='').index() TeamMemberChangedDB().index() TeamMemberTagsDB().index() TeamPlanDB().index() TelegramDB().index() USessionDB().index() UsersDB().index() WaitListDB().index()
def find_user_name(mid: str) -> str: ''' Find user_name by mid Args: mid (str): Mattermost user id. Returns: Return the user's mattermost user name or `''`. ''' mm_user = MattermostUsersDB().find_one({'_id': mid}, {'username': 1}) if mm_user: return str(mm_user['username']) mattermost_link = MattermostLinkDB().find_one({'data.user_id': mid}, {'data.user_name': 1}) if mattermost_link and 'data' in mattermost_link: return str(mattermost_link['data']['user_name']) return ''
def find_possible_mid(uid, mail=None): ''' Find any possible mattermost user id :param str uid: uid :param str mail: user mail ''' mml = MattermostLink(uid) if 'data' in mml.raw and 'user_id' in mml.raw['data']: return mml.raw['data']['user_id'] if mail is None: oauth = OAuthDB().find_one({'owner': uid}, {'_id': 1}) if oauth: mail = oauth['_id'] if mail: mm_user = MattermostUsersDB().find_one({'email': mail.strip()}, {'_id': 1}) if mm_user: return mm_user['_id'] return u''
from models.formdb import FormDB from models.mailletterdb import MailLetterDB from models.mattermost_link_db import MattermostLinkDB from models.mattermostdb import MattermostUsersDB from models.oauth_db import OAuthDB from models.projectdb import ProjectDB from models.senderdb import SenderReceiverDB from models.teamdb import TeamDB from models.teamdb import TeamMemberChangedDB from models.teamdb import TeamMemberTagsDB from models.teamdb import TeamPlanDB from models.users_db import UsersDB from models.usessiondb import USessionDB from models.waitlistdb import WaitListDB if __name__ == '__main__': FormDB().index() MailLetterDB().index() MattermostLinkDB().index() MattermostUsersDB().index() OAuthDB().index() ProjectDB(pid=None).index() SenderReceiverDB().index() TeamDB(pid=None, tid=None).index() TeamMemberChangedDB().index() TeamMemberTagsDB().index() TeamPlanDB().index() USessionDB().index() UsersDB().index() WaitListDB().index()