Exemple #1
0
    def __add_manager_v2(self, user_name, telephone, roles, syndicate_uuid):
        '''
        增加用户的内核操作。
        :param user_name:
        :param telephone:
        :param roles:   [dict]  结构为{"company_uuid":[role1,role2],}
        :return:
        '''

        try:
            user_db = UserDao(session=self.session)

            match, user_id, user_name_new = user_db.insert_user(
                user_name, telephone, Users.ROLE_MANAGER)  #增加用户。

            # 如果是更新则更新用户
            if not match and user_id:
                user_db.update_user(user_id, user_name, telephone)

            #获取当前集团的所有公司
            com_db = CompanyDao(session=self.session)
            company_list = com_db.get_companys(syndicate_uuid)
            cmpy_dict = {
                com_item['uuid']: com_item['name']
                for com_item in company_list
            }

            company_ids = cmpy_dict.keys()
            #删除用户的原来角色配置。
            usr_rfg_db = UserConfDao(session=self.session)
            usr_rfg_db.delete_manager_by_user_and_companys(
                user_id, company_ids)

            if (roles is not None):
                #插入新的角色配置。
                usr_rfg_db.insert_manager_roles(user_id, roles)

            # 通知该用户,其已经发生变化。
            redis = RedisBase()
            redis.user_change(user_id, CODE_USER_MODIFIED, Users.ROLE_MANAGER)

        except Exception, e:
            self.logger.error(traceback.format_exc())
Exemple #2
0
    def delete_manager_v2(self, user_id):

        token_info = self.get_token()
        # 日志
        self.log_user_action(token_info.get("uuid"), "delete_manager_v2",
                             user_id)

        result = {
            'result': True,
        }
        if (token_info is not None):
            syndicate_uuid = token_info.get("syndicate_uuid")

            #获取当前集团的所有公司
            com_db = CompanyDao(session=self.session)
            company_list = com_db.get_companys(syndicate_uuid)
            cmpy_dict = {
                com_item['uuid']: com_item['name']
                for com_item in company_list
            }

            company_ids = cmpy_dict.keys()

            #删除用户的原来角色配置。
            usr_rfg_db = UserConfDao(session=self.session)
            usr_rfg_db.delete_manager_by_user_and_companys(
                user_id, company_ids)

            #判断此用户是否还有其他的角色,如果没有其他角色就删除此用户。
            usr_has_other = usr_rfg_db.has_role(user_id,
                                                UserConf.TYPE_ROLE_MGR)
            if (not usr_has_other):
                usr_db = UserDao(session=self.session)
                usr_db.delete_user(user_id, Users.ROLE_MANAGER)

            # 通知该用户,其已经发生变化。
            redis = RedisBase()
            redis.user_change(user_id, CODE_USER_DELETED, Users.ROLE_MANAGER)

        else:
            result = {'result': False, 'msg': err_msgs['No_AUTHENTICATION']}
            self.set_status(400)
        return result