Exemple #1
0
    def add_viewer(self):
        user_name = self.get_argument("user_name", "")
        telephone = self.get_argument("telephone", "")
        role = self.get_argument("role", "")
        qq = self.get_argument("qq", "")
        weixin = self.get_argument("weixin", "")
        weibo = self.get_argument("weibo", "")

        self.logger.info("username:"******"  telephone:" + telephone +
                         "  roles:" + role + " qq:" + qq + " weixin:" +
                         weixin + " weibo:" + weibo)
        if user_name == "" or telephone == "" or role == "":
            self.set_status(400)
            return {"result": False, 'msg': err_msgs['PARAMS_MISSING']}

        token = self.request.headers.get("user_token", None)
        redis = RedisBase()
        token_info = redis.get_token_info(token)
        company_uuid = token_info['company_uuid']

        usr_db = UserDao(session=self.session)
        match, usr_id, user_name = usr_db.insert_user(
            user_name, telephone, Users.ROLE_VIEWER)  #增加用户。

        usr_rle_db = UserConfDao(session=self.session)
        if usr_rle_db.viewer_is_exist(usr_id,
                                      company_uuid):  # 判断当前用户在该公司是否存在观察者角色
            result = {'result': False, 'msg': err_msgs['VIEW_EXIST']}
            self.set_status(400)
            return result

        if not match:
            result = {
                'result': False,
                'msg': err_msgs['TEL_NAME_NOT_MATCH'],
                'name': user_name
            }
            self.set_status(400)
            return result

        usr_rle_db.insert_role(user_id=usr_id,
                               company_uuid=company_uuid,
                               role=role,
                               role_type=UserConf.TYPE_ROLE_VIEWER)

        if qq != '':
            usr_rle_db.insert_account(user_id=usr_id,
                                      type=UserConf.TYPE_QQ,
                                      account=qq)
        if weixin != '':
            usr_rle_db.insert_account(user_id=usr_id,
                                      type=UserConf.TYPE_WX,
                                      account=weixin)
        if weibo != '':
            usr_rle_db.insert_account(user_id=usr_id,
                                      type=UserConf.TYPE_WB,
                                      account=weibo)

        # 通知该用户,其已经发生变化。
        redis = RedisBase()
        redis.user_change(usr_id, CODE_USER_MODIFIED, Users.ROLE_VIEWER)
        # 日志
        self.log_user_action(token_info.get("uuid"), "add_viewer", usr_id)

        result = {'result': True, 'user_id': usr_id}

        return result
Exemple #2
0
    def edit_viewer(self):
        user_id = self.get_argument("user_id", "")
        user_name = self.get_argument("user_name", "")
        telephone = self.get_argument("telephone", "")
        role = self.get_argument("role", "")
        qq = self.get_argument("qq", "")
        weixin = self.get_argument("weixin", "")
        weibo = self.get_argument("weibo", "")

        self.logger.info("user_id:" + user_id + " username:"******"  telephone:" + telephone + "  roles:" + role +
                         " qq:" + qq + " weixin:" + weixin + " weibo" + weibo)
        if user_id == "" or user_name == "" or telephone == "" or role == "":
            self.set_status(400)
            return {"result": False, 'msg': err_msgs['PARAMS_MISSING']}

        token = self.request.headers.get("user_token", None)
        redis = RedisBase()

        token_info = redis.get_token_info(token)
        company_uuid = token_info['company_uuid']

        # 更新User表中的信息
        usr_db = UserDao(session=self.session)
        user_info = usr_db.user(user_id)
        old_tel = user_info['telephone']
        # 当手机号发生改变时判断该手机号是否存在
        if old_tel != telephone and usr_db.get_user_id_by_tel(telephone):
            result = {'result': False, 'msg': err_msgs['TEL_EXIST']}
            self.set_status(400)
            return result
        usr_db.update_user(user_id, user_name, telephone)

        # 删除user_conf表中对应的角色
        usr_rle_db = UserConfDao(session=self.session)
        usr_rle_db.delete_company_user(user_id, company_uuid,
                                       UserConf.TYPE_ROLE_VIEWER)

        # 插入新的角色
        usr_rle_db.insert_role(user_id, company_uuid, role,
                               UserConf.TYPE_ROLE_VIEWER)

        # 删除账户信息
        usr_rle_db.delete_account(user_id)

        # 插入账户信息
        if qq != '':
            usr_rle_db.insert_account(user_id=user_id,
                                      type=UserConf.TYPE_QQ,
                                      account=qq)
        if weixin != '':
            usr_rle_db.insert_account(user_id=user_id,
                                      type=UserConf.TYPE_WX,
                                      account=weixin)
        if weibo != '':
            usr_rle_db.insert_account(user_id=user_id,
                                      type=UserConf.TYPE_WB,
                                      account=weibo)

        # 通知该用户,其已经发生变化。
        redis = RedisBase()
        redis.user_change(user_id, CODE_USER_MODIFIED, Users.ROLE_VIEWER)
        # 日志
        self.log_user_action(token_info.get("uuid"), "edit_viewer", user_id)

        result = {'result': True}

        return result