Ejemplo n.º 1
0
 def exposed_get_executions(self, session_id, token, env, tenant_id,
                            instance_id):
     if (session_id in self.login_users
             and token == self.login_users[session_id]['token']):  # token有效
         operator = self.login_users[session_id]['id']
         # 检查用户权限
         operator_info = users.get(self.host, self.user, self.passwd,
                                   operator)
         if (operator_info
                 and int.from_bytes(operator_info[0]['dominated'], 'big')):
             env_info = environments.get(self.host, self.user, self.passwd,
                                         env)
         else:
             env_info = environments.get(self.host, self.user, self.passwd,
                                         env, operator)
         if env_info:
             read_host = env_info[0]['read_host']
             db_user = env_info[0]['user']
             db_passwd = env_info[0]['passwd']
             tenant_db = tenants.get_tenant_db(read_host, db_user,
                                               db_passwd, tenant_id)
             if tenant_db:
                 tenant_db_name = tenant_db[0]['tenant_db']
                 result = executions.list_by_procinstid(
                     read_host, db_user, db_passwd, tenant_db_name,
                     tenant_id, instance_id)
             else:
                 result = 2  # 找不到商户数据库
         else:
             result = 1  # 环境无效
         mnemosyne.create(self.host, self.user, self.passwd, 'execution',
                          operator, 3, 1 if isinstance(result, int) else 0)
     else:  # token失效
         return -1
     return result
Ejemplo n.º 2
0
    def exposed_update_user_status(self, session_id, token, user_status,
                                   user_id):
        if (session_id in self.login_users
                and token == self.login_users[session_id]['token']):
            # token有效
            operator = self.login_users[session_id]['id']

            # 检查用户权限
            operator_info = users.get(self.host, self.user, self.passwd,
                                      operator)
            if (operator_info
                    and int.from_bytes(operator_info[0]['dominated'], 'big')):
                result = users.update_user_status(self.host, self.user,
                                                  self.passwd, user_status,
                                                  user_id)
                for k, v in list(self.login_users.items()):
                    if v['id'] == user_id:
                        del self.login_users[k]
            else:
                result = 2  # 用户权限不足
            mnemosyne.create(self.host, self.user, self.passwd, 'user',
                             operator, 2, 1 if result else 0)
        else:
            # token失效
            result = -1
        return result
Ejemplo n.º 3
0
 def exposed_get_tenant_detail(self, session_id, token, env, tenant_id):
     if (session_id in self.login_users
             and token == self.login_users[session_id]['token']):  # token有效
         operator = self.login_users[session_id]['id']
         # 检查用户权限
         operator_info = users.get(self.host, self.user, self.passwd,
                                   operator)
         if (operator_info
                 and int.from_bytes(operator_info[0]['dominated'], 'big')):
             env_info = environments.get(self.host, self.user, self.passwd,
                                         env)
         else:
             env_info = environments.get(self.host, self.user, self.passwd,
                                         env, operator)
         if env_info:
             read_host = env_info[0]['read_host']
             db_user = env_info[0]['user']
             db_passwd = env_info[0]['passwd']
             result = tenants.get_detail(read_host, db_user, db_passwd,
                                         tenant_id)
         else:
             result = 1  # 环境无效
         mnemosyne.create(self.host, self.user, self.passwd, 'tenant',
                          operator, 3, 1 if isinstance(result, int) else 0)
     else:  # token失效
         return -1
     return result
Ejemplo n.º 4
0
    def exposed_create_user(self, session_id, token, username, passwd,
                            user_permission):
        if (session_id in self.login_users
                and token == self.login_users[session_id]['token']):
            # token有效
            operator = self.login_users[session_id]['id']

            # 检查用户权限
            operator_info = users.get(self.host, self.user, self.passwd,
                                      operator)
            if (operator_info
                    and int.from_bytes(operator_info[0]['dominated'], 'big')):
                result = 999
                # 是否存在重复的用户
                dup_user = users.find_duplicate(self.host, self.user,
                                                self.passwd, username)
                if dup_user is None:
                    result = 1  # 数据库错误
                elif dup_user:
                    return dup_user[0]['name']
                else:
                    # 插入数据库
                    result = 0
                    if users.create(self.host, self.user, self.passwd,
                                    username, passwd, user_permission):
                        result = 1
            else:
                result = 2  # 用户权限不足
            mnemosyne.create(self.host, self.user, self.passwd, 'user',
                             operator, 1, 1 if result else 0)
        else:
            # token失效
            result = -1
        return result
Ejemplo n.º 5
0
    def exposed_update_env(self, session_id, token, env, read_host, write_host,
                           user, passwd):
        if (session_id in self.login_users
                and token == self.login_users[session_id]['token']):
            # token有效
            operator = self.login_users[session_id]['id']

            # 检查用户权限
            operator_info = users.get(self.host, self.user, self.passwd,
                                      operator)
            if (operator_info
                    and int.from_bytes(operator_info[0]['dominated'], 'big')):
                result = 999
                if write_host and user and passwd:
                    result1 = 0
                    result2 = 0
                    if read_host:
                        result1 = mysql.test(read_host, user, passwd)
                    result2 = mysql.test(write_host, user, passwd)
                    result = result1 + result2
                    if not result:
                        # 是否存在重复的环境
                        dup_env = environments.find_duplicate(
                            self.host, self.user, self.passwd, env, read_host,
                            write_host)
                        if dup_env is None:
                            result = 3  # 数据库错误
                        else:
                            if dup_env:
                                dup_envname = dup_env[0]['name']
                                if dup_envname != env:
                                    return dup_envname
                            # 更新数据库
                            if environments.update(self.host, self.user,
                                                   self.passwd, env, read_host,
                                                   write_host, user, passwd):
                                result = 3  # 数据库错误
                else:
                    result = 2  # 写库连接失败
            else:
                result = 4  # 用户权限不足
            mnemosyne.create(self.host, self.user, self.passwd, 'environment',
                             operator, 2, 1 if result else 0)
        else:
            # token失效
            result = -1
        return result
Ejemplo n.º 6
0
    def exposed_get_current_user(self, session_id, token):
        if (session_id in self.login_users
                and token == self.login_users[session_id]['token']):
            # token有效
            operator = self.login_users[session_id]['id']

            # 检查用户权限
            operator_info = users.get(self.host, self.user, self.passwd,
                                      operator)
            if operator_info:
                result = operator_info[0]
            else:
                result = 2  # 出错
            mnemosyne.create(self.host, self.user, self.passwd, 'user',
                             operator, 3, 1 if result else 0)
        else:
            # token失效
            result = -1
        return result
Ejemplo n.º 7
0
    def exposed_get_user(self, session_id, token, user_id):
        if (session_id in self.login_users
                and token == self.login_users[session_id]['token']):
            # token有效
            operator = self.login_users[session_id]['id']

            # 检查用户权限
            operator_info = users.get(self.host, self.user, self.passwd,
                                      operator)
            if (operator_info
                    and int.from_bytes(operator_info[0]['dominated'], 'big')):
                result = users.get(self.host, self.user, self.passwd, user_id)
            else:
                result = 2  # 用户权限不足
            mnemosyne.create(self.host, self.user, self.passwd, 'user',
                             operator, 3, 1 if result else 0)
        else:
            # token失效
            result = -1
        return result
Ejemplo n.º 8
0
    def exposed_update_env_name(self, session_id, token, env, new_env):
        if (session_id in self.login_users
                and token == self.login_users[session_id]['token']):
            # token有效
            operator = self.login_users[session_id]['id']

            # 检查用户权限
            operator_info = users.get(self.host, self.user, self.passwd,
                                      operator)
            if (operator_info
                    and int.from_bytes(operator_info[0]['dominated'], 'big')):
                result = environments.update_name(self.host, self.user,
                                                  self.passwd, env, new_env)
            else:
                result = 2  # 用户权限不足
            mnemosyne.create(self.host, self.user, self.passwd, 'environment',
                             operator, 2, 1 if result else 0)
        else:
            # token失效
            result = -1
        return result
Ejemplo n.º 9
0
 def exposed_validate_application(self, env, session_id, token, params,
                                  param_type, tenant_id):
     if (session_id in self.login_users
             and token == self.login_users[session_id]['token']):  # token有效
         operator = self.login_users[session_id]['id']
         # 检查用户权限
         operator_info = users.get(self.host, self.user, self.passwd,
                                   operator)
         if (operator_info
                 and int.from_bytes(operator_info[0]['dominated'], 'big')):
             env_info = environments.get(self.host, self.user, self.passwd,
                                         env)
         else:
             env_info = environments.get(self.host, self.user, self.passwd,
                                         env, operator)
         if env_info:
             read_host = env_info[0]['read_host']
             db_user = env_info[0]['user']
             db_passwd = env_info[0]['passwd']
             tenant_db = tenants.get_tenant_db(read_host, db_user,
                                               db_passwd, tenant_id)
             if tenant_db:
                 tenant_db_name = tenant_db[0]['tenant_db']
                 if param_type == 'KEY':
                     result = applications.list_by_keys(
                         read_host, db_user, db_passwd, tenant_db_name,
                         tenant_id, params)
                 elif param_type == 'FLOWNO':
                     result = applications.list_by_flownos(
                         read_host, db_user, db_passwd, tenant_db_name,
                         tenant_id, params)
             else:
                 result = 2  # 找不到商户数据库
         else:
             result = 1  # 环境无效
         mnemosyne.create(self.host, self.user, self.passwd, 'application',
                          operator, 3, 1 if isinstance(result, int) else 0)
     else:  # token失效
         return -1
     return result
Ejemplo n.º 10
0
    def exposed_update_own_passwd(self, session_id, token, passwd):
        if (session_id in self.login_users
                and token == self.login_users[session_id]['token']):
            # token有效
            operator = self.login_users[session_id]['id']

            # 检查用户权限
            operator_info = users.get(self.host, self.user, self.passwd,
                                      operator)
            if operator_info:
                result = users.update_passwd(self.host, self.user, self.passwd,
                                             operator_info[0]['id'], passwd)
                for k, v in list(self.login_users.items()):
                    if v['id'] == operator_info[0]['id']:
                        del self.login_users[k]
            else:
                result = 2  # 出错
            mnemosyne.create(self.host, self.user, self.passwd, 'user',
                             operator, 2, 1 if result else 0)
        else:
            # token失效
            result = -1
        return result