Esempio n. 1
0
    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)
Esempio n. 3
0
    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''
Esempio n. 4
0
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()
Esempio n. 5
0
    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 ''
Esempio n. 6
0
    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''
Esempio n. 7
0
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()