Esempio n. 1
0
    def post(self):
        ps = self.get_page_config(title='创建用户组')
        if ps['isedit']:
            ps['title'] = self.get_page_title('编辑用户组')

        usergroup = self.get_args(['id', 'name', 'remark'], '')
        usergroup['status'] = int(self.get_arg('status', '0'))
        msg = self.check_str_empty_input(usergroup, ['name'])
        ps['usergroup'] = usergroup
        if str_helper.is_null_or_empty(msg) == False:
            ps['msg'] = msg
            ps = self.format_none_to_empty(ps)
            self.render('admin/usergroup/add_or_edit_bs.html', **ps)
            return
        usergroup['user'] = self.get_oper_user()

        if ps['isedit']:
            try:
                og = usergroup_logic.query_one(usergroup['id'])
                info = usergroup_logic.update(id=usergroup['id'],
                                              name=usergroup['name'],
                                              status=usergroup['status'],
                                              remark=usergroup['remark'],
                                              user=usergroup['user'])
                if info:
                    ng = usergroup_logic.query_one(usergroup['id'])
                    self.write_oper_log(action='userGroupEdit',
                                        targetType=6,
                                        targetID=str(ng['id']),
                                        targetName=ng['name'],
                                        startStatus=str_helper.json_encode(og),
                                        endStatus=str_helper.json_encode(ng))
                    ps = self.get_ok_and_back_params(ps=ps,
                                                     refUrl=ps['refUrl'])
                else:
                    ps['msg'] = state.ResultInfo.get(101, '')
            except error.RightError as e:
                ps['msg'] = e.msg
        else:
            try:
                info = usergroup_logic.add(name=usergroup['name'],
                                           status=usergroup['status'],
                                           remark=usergroup['remark'],
                                           user=usergroup['user'])
                if info > 0:
                    ng = usergroup_logic.query_one_by_name(usergroup['name'])
                    self.write_oper_log(action='userGroupCreate',
                                        targetType=6,
                                        targetID=str(ng['id']),
                                        targetName=ng['name'],
                                        startStatus='',
                                        endStatus=str_helper.json_encode(ng))
                    ps = self.get_ok_and_back_params(ps=ps,
                                                     refUrl=ps['refUrl'])
                else:
                    ps['msg'] = state.ResultInfo.get(101, '')
            except error.RightError as e:
                ps['msg'] = e.msg
        ps = self.format_none_to_empty(ps)
        self.render('admin/usergroup/add_or_edit_bs.html', **ps)
Esempio n. 2
0
def collect_run():
    ''' 采集main执行 '''
    servers = query_collect_server_all()
    tasks = {}
    for s in servers:
        tasks[s['id']] = s

    collects = get_run_collect_process()

    logger().info('all_tasks:' + str_helper.json_encode(tasks))
    logger().info('now_tasks:' + str_helper.json_encode(collects))

    start_collects(tasks, collects)
    kill_collects(tasks, collects)
Esempio n. 3
0
    def post(self):
        params = self.get_args(['name', 'path', 'customJson', 'rights', 'remark', 'user'], '')
        params['sort'] = int(self.get_arg('sort', '0'))
        params['status'] = int(self.get_arg('status', '0'))

        msg = self.check_str_empty_input(params, ['name', 'path', 'user'])
        if str_helper.is_null_or_empty(msg) == False:
            self.out_fail(code = 1001, msg = msg)
            return

        func = func_logic.query_one_by_path(path = params['path'])
        if None == func:
            self.out_fail(code = 102004)
            return

        user = user_logic.query_one_by_name(params['user'])
        if None == user:
            self.out_fail(code = 103002)

        print self.get_argument('rights')
        try:
            result = func_logic.update(id = func['id'], name = params['name'], sort = params['sort'], rights = params['rights'], 
                customJson = params['customJson'], remark = params['remark'], user = params['user'])

            if True == result:
                self.write_oper_log(action = 'funcEditInterface', targetType = 3, targetID = str(func['id']), 
                    targetName = params['name'], startStatus = '', endStatus= str_helper.json_encode(params), user = user)
                self.out_ok()
            else:
                self.out_fail(code = 101)            
        except error.RightError as e:
            self.out_fail(code=e.code)
            return
        return
        
Esempio n. 4
0
    def post(self, *args, **kwargs):
        # self.get()
        action = self.get_argument('action')
        msg = self.request.body_arguments
        tel4 = self.request.query
        print(self.request)
        # print(self.request)
        print('+++++++++++++++++', msg)
        try:
            print(self.get_arg('data'))
        except Exception as e:
            print('error is :  ', e)
        sid = self.get_arg('id')

        print('id:---------:', sid, 'action', self.get_arg('action'))
        rt = {
            "id": '-1',
            "fieldErrors": [
            {
                "name": "user_id",
                "status": "该项不能为空"
            }
            ],
            "sError": "有错误发生,请联系系统管理员",
            "aaData": []
        }
        srt = str_helper.json_encode(rt)
        print('-----------', srt)
        self.write(srt)
Esempio n. 5
0
def send_mq(mqName, collectInfo, nowTime):
    global _ip, _id
    ''' 保存到消息队列 '''
    url = config.ucmq_path
    params = {
        'name' : mqName,
        'opt' : 'put',
        'ver' : 2,
    }
    data = {
        'id' : _id,
        'ip' : _ip,
        'time' : nowTime,
        'info' : collectInfo,
    }

    d = str_helper.json_encode(data)
    re = http_helper.post(url, params = params, data = d)
    if 200 == re.status_code:
        re.encoding = 'utf-8'
        log = 'collect_server_info:%s;data:%s;result:%s' % (re.url, d, re.text)
        logger().info(log)
        return re.text

    log = 'collect_server_info:%s;data:%s;resultcode:%d' % (re.url, d, re.status_code)
    logger().info(log)
    return None
Esempio n. 6
0
 def get(self):
     users = user_logic.query_page()
     # users.append({'user_key': self.session.get('user_key')})
     print("*********", users)
     user = str_helper.json_encode(users)
     print("++++++++", user)
     self.write(user)
Esempio n. 7
0
 def get(self):
     id = int(self.get_arg('id', '0'))
     func = func_logic.FuncLogic.instance().query_one_by_id(id)
     if None != func:
         json = str_helper.json_encode(func)
         self.out_ok(data=json)
     else:
         self.out_fail(1002)
Esempio n. 8
0
 def get(self):
     id = int(self.get_arg('id', '0'))
     func = func_logic.query_one_by_id(id)
     if None != func:
         json = str_helper.json_encode(func)
         self.out_ok(data=json)
     else:
         self.out_fail(1002)
Esempio n. 9
0
def setObj(key, val, time = 0):
    if None == val:
        return
    json = str_helper.json_encode(val)
    r = _get_redis()
    key = _cachekeypre % key
    if time <= 0:
        r.set(key, json)
    else:
        r.setex(key,  json, time)
Esempio n. 10
0
def setObj(key, val, time=0):
    if None == val:
        return
    json = str_helper.json_encode(val)
    r = _get_redis()
    key = _cachekeypre % key
    if time <= 0:
        r.set(key, json)
    else:
        r.setex(key, json, time)
Esempio n. 11
0
 def out_ok(self, data=None, jsoncallback = None):
     if data == None or data == '':
         j = '{"code":0,"msg":"OK"}'
     elif str == type(data) or unicode == type(data): 
         j = '{"code":0,"msg":"OK","data":%s}' % data
     else:
         j = '{"code":0,"msg":"OK","data":%s}' % str_helper.json_encode(data)
     if jsoncallback == None or jsoncallback == '':
         self.write(j)
     else:
         self.write('%s(%s)' % (jsoncallback, j))
Esempio n. 12
0
 def out_ok(self, data=None, jsoncallback=None):
     if data == None or data == '':
         j = '{"code":0,"msg":"OK"}'
     elif str == type(data) or unicode == type(data):
         j = '{"code":0,"msg":"OK","data":%s}' % data
     else:
         j = '{"code":0,"msg":"OK","data":%s}' % str_helper.json_encode(
             data)
     if jsoncallback == None or jsoncallback == '':
         self.write(j)
     else:
         self.write('%s(%s)' % (jsoncallback, j))
Esempio n. 13
0
    def get(self):
        userName = self.get_arg('userName','')
        if '' == userName:
            self.out_fail(code = 1001, msg = 'userName')
            return

        user = user_logic.query_user_by_name_cache(name = userName)
        if None == users:
            self.out_ok(data = '{}')
            return
        
        json = str_helper.json_encode(user)
        self.out_ok(data = json)
        return
Esempio n. 14
0
 def post(self):
     id = int(self.get_arg('id', '0'))
     user = self.get_oper_user()
     og = usergroup_logic.query_one(id)
     type = usergroup_logic.delete(id=id, user=user)
     if type:
         self.write_oper_log(action='userGroupDelete',
                             targetType=6,
                             targetID=str(og['id']),
                             targetName=og['name'],
                             startStatus=str_helper.json_encode(og),
                             endStatus='')
         self.out_ok()
     else:
         self.out_fail(code=101)
Esempio n. 15
0
 def query_users_by_user_group_cache(self, userGroupID):
     key = self._users_by_group_key % str(userGroupID)
     json = redis_cache.getStr(key)
     if None == json:
         users = self.query_all_group_users(userGroupID = userGroupID)        
         if None == users or len(users) == 0:
             json = '[]'
         else:
             us = []
             for u in users:
                 u1 = {'userName':u['userName'], 'userRealName':u['userRealName'], 'userID':u['userID']}
                 us.append(u1)
             json = str_helper.json_encode(us)
         redis_cache.setStr(key = key, val = json, time = config.cache['apiTimeOut'])
     return json
Esempio n. 16
0
    def alarm_send_run(self):
        while True:
            time.sleep(config.analysis_interval)

            monitorTime = date_helper.get_datetimestr(
                minutes=-config.alarm_repeat_time)
            overTime = date_helper.datetime_to_time(
                date_helper.get_add_datetime(
                    minutes=-config.alarm_repair_time))
            try:
                alarms = self.__query_alarm_by_monitorTime(monitorTime)
                # print len(alarms)
                alarmMap = self.alarm_format(alarms)
                self.get_alarm_logger().info(str_helper.json_encode(alarmMap))
                for k, v in alarmMap.items():
                    if overTime > date_helper.datetime_to_time(
                            v['collectTime']) and 3 == v['isSend']:
                        ''' 发送恢复短信 '''
                        msg = '[' + v['collectTime'].strftime(
                            '%Y%m%d %H%M%S'
                        ) + ']故障已恢复' + v['serverIp'] + '#' + v[
                            'serverPlatId'] + '#' + v['serverAppId'] + v['msg']
                        self.send_sms(v['mobiles'], msg)
                        self.add_repair_alarm(id=v['serverId'],
                                              ip=v['serverIp'],
                                              level=config.alarm_level,
                                              typee=v['type'],
                                              limitValue=0,
                                              nowValue=0,
                                              msg=msg,
                                              mobiles=v['mobiles'])
                    elif 1 == v['isSend']:
                        ''' 发送报警短信 '''
                        self.send_sms(
                            v['mobiles'],
                            '[' + v['collectTime'].strftime('%Y%m%d %H%M%S') +
                            ']' + v['serverIp'] + '#' + v['serverPlatId'] +
                            '#' + v['serverAppId'] + v['msg'])
                        self.__update_alarm_status(serverId=v['serverId'],
                                                   typee=v['type'],
                                                   status=3)
                    else:
                        ''' 已发送过报警短信,不重复发送 '''
                        a = 1

            except Exception, e:
                self.get_alarm_logger().error(traceback.format_exc())
            finally:
Esempio n. 17
0
 def post(self):
     id = int(self.get_arg('id', '0'))
     user = self.get_oper_user()
     ou = user_logic.query_one(id=id)
     type = user_logic.delete(id=id, user=user)
     if type:
         try:
             self.write_oper_log(action='userDelete',
                                 targetType=1,
                                 targetID=str(id),
                                 targetName=ou['name'],
                                 startStatus=str_helper.json_encode(ou),
                                 endStatus='')
         except e:
             print e
         self.out_ok()
     else:
         self.out_fail(code=101)
Esempio n. 18
0
    def get(self):
        names = self.get_arg('names','')
        if '' == names:
            self.out_fail(code = 1001, msg = 'names')
            return
        names = str_helper.format_str_to_list_filter_empty(names, ',')

        users = []
        for name in names:
            if str_helper.is_null_or_empty(name):
                continue
            user = user_logic.query_user_by_name_cache(name = name)    
            if None != user:
                users.append(user)
                
        json = str_helper.json_encode(users)
        self.out_ok(data = json)
        return
Esempio n. 19
0
def query_users_by_user_group_cache(userGroupID):
    key = _users_by_group_key % str(userGroupID)
    json = redis_cache.getStr(key)
    if None == json:
        users = query_all_group_users(userGroupID=userGroupID)
        if None == users or len(users) == 0:
            json = '[]'
        else:
            us = []
            for u in users:
                u1 = {
                    'userName': u['userName'],
                    'userRealName': u['userRealName'],
                    'userID': u['userID']
                }
                us.append(u1)
            json = str_helper.json_encode(us)
        redis_cache.setStr(key=key, val=json, time=config.cache['apiTimeOut'])
    return json
Esempio n. 20
0
 def post(self):
     type = self.check_oper_right_custom_right(self._rightKey,
                                               self._lockUserKey)
     if type == False:
         self.out_fail(code=1004)
         return
     id = int(self.get_arg('id', '0'))
     user = self.get_oper_user()
     ou = user_logic.query_one(id=id)
     type = user_logic.update_status(id=id, status=3, user=user)
     if type:
         try:
             self.write_oper_log(action='userLock',
                                 targetType=1,
                                 targetID=str(id),
                                 targetName=ou['name'],
                                 startStatus=str_helper.json_encode(ou),
                                 endStatus='')
         except e:
             print e
         self.out_ok()
     else:
         self.out_fail(code=101)
Esempio n. 21
0
    def post(self):
        ps = self.get_page_config(title = '创建应用')
        if ps['isedit']:
            ps['title'] = self.get_page_title('编辑应用')

        app = self.get_args(['code', 'name', 'developer', 'url', 'remark'], '')
        app['status'] = int(self.get_arg('status', '0'))        
        ps['app'] = app        
        msg = self.check_str_empty_input(app, ['code', 'name', 'url'])
        if str_helper.is_null_or_empty(msg) == False:
            ps['msg'] = msg
            self.render('admin/application/add_or_edit.html', **ps)
            return
        codeType = str_helper.check_num_abc__(app['code'])
        if codeType == False:
            ps['msg'] = state.ResultInfo.get(101006, '')
            self.render('admin/application/add_or_edit.html', **ps)
            return
        app['user'] = self.get_oper_user()
        if ps['isedit']:
            self.check_oper_right(right = state.operEdit)
            try:
                oa = application_logic.query_one(app['code'])
                info = application_logic.update(name = app['name'], code = app['code'], 
                        developer = app['developer'], url = app['url'], status = app['status'], remark = app['remark'], user = app['user'])
                if info:
                    na = application_logic.query_one(app['code'])
                    self.write_oper_log(action = 'appEdit', targetType = 2, targetID = oa['code'], targetName = oa['name'], startStatus = str_helper.json_encode(oa), endStatus= str_helper.json_encode(na))
                    ps = self.get_ok_and_back_params(ps = ps, refUrl = ps['refUrl'])
                else:
                    ps['msg'] = state.ResultInfo.get(101, '')
            except error.RightError as e:
                ps['msg'] = e.msg
        else:
            self.check_oper_right(right = state.operAdd)
            try:
                info = application_logic.add(name = app['name'], code = app['code'], 
                    developer = app['developer'], url = app['url'], status = app['status'], remark = app['remark'], user = app['user'])
                if info:
                    na = application_logic.query_one(app['code'])
                    self.write_oper_log(action = 'appCreate', targetType = 2, targetID = na['code'], targetName = na['name'], startStatus = '', endStatus= str_helper.json_encode(na))
                    ps = self.get_ok_and_back_params(ps = ps, refUrl = ps['refUrl'])
                else:
                    ps['msg'] = state.ResultInfo.get(101, '')
            except error.RightError as e:
                ps['msg'] = e.msg
        ps = self.format_none_to_empty(ps)
        self.render('admin/application/add_or_edit.html', **ps)
Esempio n. 22
0
    def post(self):
        ps = self.get_page_config(title = '创建用户')
        ps['ResetPasswordType'] = self.check_oper_right_custom_right(self._rightKey, self._resetPwKey)
        if ps['isedit']:
            ps['title'] = self.get_page_title('编辑用户')

        user = self.get_args(['id', 'passWord', 'name', 'realName', 'mobile', 'tel', 'email', 'remark', 'beginDate', 'endDate'], '')
        user['status'] = int(self.get_arg('status', '0'))
        user['departmentID'] = int(self.get_arg('departmentID', '0'))
        user['parentID'] = int(self.get_arg('parentID', '0'))
        ps['user'] = user
        ps['userStatus'] = state.UserStatus
        ps['roleID'] = self.get_arg('role', '')
        ps['userGroupID'] = self.get_arg('userGroup', '')
        ps['deps'] = department_logic.query_all_by_active()
        msg = self.check_str_empty_input(user, ['name', 'realName', 'email', 'mobile', 'beginDate', 'endDate'])
        if str_helper.is_null_or_empty(msg) == False:
            ps['msg'] = msg
            ps = self.format_none_to_empty(ps)
            self.render('admin/user/add_or_edit.html', **ps)
            return

        user['user'] = self.get_oper_user()
        ps['user'] = copy.copy(user)
        if ps['isedit']:
            self.check_oper_right(right = state.operEdit)
            try:
                ou = user_logic.query_one_by_name(name = user['name'])
                info = user_logic.update(id = user['id'], realName = user['realName'], 
                        departmentID = user['departmentID'], parentID = user['parentID'], mobile = user['mobile'], 
                        tel = user['tel'], email = user['email'], status = user['status'], beginDate = user['beginDate'], 
                        endDate = user['endDate'], remark = user['remark'], user = user['user'])
                if info:
                    nu = user_logic.query_one_by_name(name = user['name'])
                    self.bind_role(userID = nu['id'], roleID = ps['roleID'], user = user['user'])
                    self.bind_user_group(userID = nu['id'], userGroupID = ps['userGroupID'], user = user['user'])
                    self.write_oper_log(action = 'userEdit', targetType = 1, targetID = str(nu['id']), targetName = nu['name'], startStatus = str_helper.json_encode(ou), endStatus= str_helper.json_encode(nu))
                    ps = self.get_ok_and_back_params(ps = ps, refUrl = ps['refUrl'])
                else:
                    ps['msg'] = state.ResultInfo.get(101, '')
            except error.RightError as e:
                ps['msg'] = e.msg
        else:
            self.check_oper_right(right = state.operEdit)            
            try:
                info = user_logic.add(name = user['name'], passWord = user['passWord'], 
                            realName = user['realName'], departmentID = user['departmentID'], mobile = user['mobile'], 
                            tel = user['tel'], email = user['email'],beginDate = user['beginDate'], 
                            endDate = user['endDate'], status = user['status'], remark = user['remark'], 
                            parentID = user['parentID'], user = user['user'])
                if info > 0:
                    nu = user_logic.query_one_by_name(name = user['name'])
                    self.bind_role(userID = nu['id'], roleID = ps['roleID'], user = user['user'])
                    self.bind_user_group(userID = nu['id'], userGroupID = ps['userGroupID'], user = user['user'])
                    self.write_oper_log(action = 'userCreate', targetType = 1, targetID = str(nu['id']), targetName = nu['name'], startStatus = '', endStatus= str_helper.json_encode(nu))
                    ps = self.get_ok_and_back_params(ps = ps, refUrl = ps['refUrl'])
                else:
                    ps['msg'] = state.ResultInfo.get(101, '')
            except error.RightError as e:
                ps['msg'] = e.msg
        ps = self.format_none_to_empty(ps)
        self.render('admin/user/add_or_edit.html', **ps)
Esempio n. 23
0
 def post(self):
     type = self.check_oper_right_custom_right(self._rightKey, self._lockUserKey)
     if type == False:
         self.out_fail(code = 1004)
         return
     id = int(self.get_arg('id', '0'))
     user = self.get_oper_user()
     ou = user_logic.query_one(id = id)
     type = user_logic.update_status(id = id, status = 3, user = user)
     if type:
         try:
             self.write_oper_log(action = 'userLock', targetType = 1, targetID = str(id), targetName = ou['name'], startStatus = str_helper.json_encode(ou), endStatus= '')
         except e:
             print e
         self.out_ok()
     else:
         self.out_fail(code = 101)
Esempio n. 24
0
 def post(self):
     id = int(self.get_arg('id', '0'))
     user = self.get_oper_user()
     ou = user_logic.query_one(id = id)
     type = user_logic.delete(id = id, user = user)
     if type:
         try:
             self.write_oper_log(action = 'userDelete', targetType = 1, targetID = str(id), targetName = ou['name'], startStatus = str_helper.json_encode(ou), endStatus= '')
         except e:
             print e
         self.out_ok()
     else:
         self.out_fail(code = 101)
Esempio n. 25
0
    def post(self):
        func = self.get_args(['appCode', 'name', 'code', 'customJson', 'rights', 'remark'], '')
        func['id'] = int(self.get_arg('id', '0'))
        func['parentID'] = int(self.get_arg('parentID', '0'))
        func['sort'] = int(self.get_arg('sort', '0'))
        
        msg = self.check_str_empty_input(func, ['code', 'name', 'rights', 'appCode'])
        if str_helper.is_null_or_empty(msg) == False:
            self.out_fail(code = 1001, msg = msg)
            return
        btype = str_helper.check_num_abc__(func['code'])
        if btype == False:
            self.out_fail(code = 1001, msg = '编号参数只允许输入英文字母、数字和下划线')
            return
        func['user'] = self.get_oper_user()
        if func['id'] <= 0:
            self.check_oper_right(right = state.operAdd)
            if func['parentID'] <= 0:
                func['path'] = '%s.%s' % (func['appCode'], func['code'])
            else:
                func['path'] = '%s.%s' % ((func_logic.query_one_by_id(func['parentID'])).get('path'), func['code'])
            func['status'] = state.Boole['true']

            f = func_logic.query_one_by_path(path = func['path'])
            if None != f:
                self.out_fail(code = 102003)
                return
            try:
                result = func_logic.add(appCode = func['appCode'], name = func['name'], code = func['code'], 
                            parentID = func['parentID'], path = func['path'], rights = func['rights'], customJson = func['customJson'], sort = func['sort'], 
                            status = func['status'], remark = func['remark'], user = func['user'])
                nf = func_logic.query_one_by_path(func['path'])
                self.write_oper_log(action = 'funcCreate', targetType = 3, targetID = str(nf['id']), targetName = nf['name'], startStatus = '', endStatus= str_helper.json_encode(nf))
            except error.RightError as e:
                self.out_fail(code=e.code)
                return
        else:
            self.check_oper_right(right = state.operEdit)
            try:
                of = func_logic.query_one_by_id(func['id'])
                func_logic.update(id = func['id'], name = func['name'], sort = func['sort'], rights = func['rights'], 
                                customJson = func['customJson'], remark = func['remark'], user = func['user'])
                nf = func_logic.query_one_by_id(func['id'])
                self.write_oper_log(action = 'funcEdit', targetType = 3, targetID = str(nf['id']), targetName = nf['name'], startStatus = str_helper.json_encode(of), endStatus= str_helper.json_encode(nf))
            except error.RightError as e:
                self.out_fail(code=e.code)
                return
        self.out_ok()
Esempio n. 26
0
    def post(self):
        ps = self.get_page_config(title='创建用户')
        ps['ResetPasswordType'] = self.check_oper_right_custom_right(
            self._rightKey, self._resetPwKey)
        if ps['isedit']:
            ps['title'] = self.get_page_title('编辑用户')

        user = self.get_args([
            'id', 'passWord', 'name', 'realName', 'mobile', 'tel', 'email',
            'remark', 'beginDate', 'endDate'
        ], '')
        user['status'] = int(self.get_arg('status', '0'))
        user['departmentID'] = int(self.get_arg('departmentID', '0'))
        user['parentID'] = int(self.get_arg('parentID', '0'))
        ps['user'] = user
        ps['userStatus'] = state.UserStatus
        ps['roleID'] = self.get_arg('role', '')
        ps['userGroupID'] = self.get_arg('userGroup', '')
        ps['deps'] = department_logic.query_all_by_active()
        msg = self.check_str_empty_input(
            user,
            ['name', 'realName', 'email', 'mobile', 'beginDate', 'endDate'])
        if str_helper.is_null_or_empty(msg) == False:
            ps['msg'] = msg
            ps = self.format_none_to_empty(ps)
            self.render('admin/user/add_or_edit_bs.html', **ps)
            return

        user['user'] = self.get_oper_user()
        ps['user'] = copy.copy(user)
        if ps['isedit']:
            self.check_oper_right(right=state.operEdit)
            try:
                ou = user_logic.query_one_by_name(name=user['name'])
                info = user_logic.update(id=user['id'],
                                         realName=user['realName'],
                                         departmentID=user['departmentID'],
                                         parentID=user['parentID'],
                                         mobile=user['mobile'],
                                         tel=user['tel'],
                                         email=user['email'],
                                         status=user['status'],
                                         beginDate=user['beginDate'],
                                         endDate=user['endDate'],
                                         remark=user['remark'],
                                         user=user['user'])
                if info:
                    nu = user_logic.query_one_by_name(name=user['name'])
                    self.bind_role(userID=nu['id'],
                                   roleID=ps['roleID'],
                                   user=user['user'])
                    self.bind_user_group(userID=nu['id'],
                                         userGroupID=ps['userGroupID'],
                                         user=user['user'])
                    self.write_oper_log(action='userEdit',
                                        targetType=1,
                                        targetID=str(nu['id']),
                                        targetName=nu['name'],
                                        startStatus=str_helper.json_encode(ou),
                                        endStatus=str_helper.json_encode(nu))
                    ps = self.get_ok_and_back_params(ps=ps,
                                                     refUrl=ps['refUrl'])
                else:
                    ps['msg'] = state.ResultInfo.get(101, '')
            except error.RightError as e:
                ps['msg'] = e.msg
        else:
            self.check_oper_right(right=state.operEdit)
            try:
                info = user_logic.add(name=user['name'],
                                      passWord=user['passWord'],
                                      realName=user['realName'],
                                      departmentID=user['departmentID'],
                                      mobile=user['mobile'],
                                      tel=user['tel'],
                                      email=user['email'],
                                      beginDate=user['beginDate'],
                                      endDate=user['endDate'],
                                      status=user['status'],
                                      remark=user['remark'],
                                      parentID=user['parentID'],
                                      user=user['user'])
                if info > 0:
                    nu = user_logic.query_one_by_name(name=user['name'])
                    self.bind_role(userID=nu['id'],
                                   roleID=ps['roleID'],
                                   user=user['user'])
                    self.bind_user_group(userID=nu['id'],
                                         userGroupID=ps['userGroupID'],
                                         user=user['user'])
                    self.write_oper_log(action='userCreate',
                                        targetType=1,
                                        targetID=str(nu['id']),
                                        targetName=nu['name'],
                                        startStatus='',
                                        endStatus=str_helper.json_encode(nu))
                    ps = self.get_ok_and_back_params(ps=ps,
                                                     refUrl=ps['refUrl'])
                else:
                    ps['msg'] = state.ResultInfo.get(101, '')
            except error.RightError as e:
                ps['msg'] = e.msg
        ps = self.format_none_to_empty(ps)
        self.render('admin/user/add_or_edit_bs.html', **ps)
Esempio n. 27
0
    def post(self):
        ps = self.get_page_config(title = '创建角色')
        if ps['isedit']:
            ps['title'] = self.get_page_title('编辑角色')

        role = self.get_args(['id', 'name', 'remark'], '')
        role['status'] = int(self.get_arg('status', '0'))
        ps['role'] = role
        msg = self.check_str_empty_input(role, ['name'])
        if str_helper.is_null_or_empty(msg) == False:
            ps['msg'] = msg
            ps = self.format_none_to_empty(ps)
            self.render('admin/role/add_or_edit.html', **ps)
            return
        role['user'] = self.get_oper_user()
        
        if ps['isedit']:
            self.check_oper_right(right = state.operEdit)
            try:
                oro = role_logic.query_one(role['id'])
                info = role_logic.update(id = role['id'], name = role['name'], 
                        status = role['status'], remark = role['remark'], user = role['user'])                
                if info:                    
                    nro = role_logic.query_one(role['id'])
                    self.write_oper_log(action = 'roleEdit', targetType = 5, targetID = str(nro['id']), targetName = nro['name'], startStatus = str_helper.json_encode(oro), endStatus= str_helper.json_encode(nro))
                    ps = self.get_ok_and_back_params(ps = ps, refUrl = ps['refUrl'])
                else:
                    ps['msg'] = state.ResultInfo.get(101, '')
            except error.RightError as e:
                ps['msg'] = e.msg
        else:
            self.check_oper_right(right = state.operAdd)
            try:
                info = role_logic.add(name = role['name'], 
                        status = role['status'], remark = role['remark'], user = role['user'])
                if info > 0:
                    nro = role_logic.query_one_by_name(role['name'])
                    self.write_oper_log(action = 'roleEdit', targetType = 5, targetID = str(nro['id']), targetName = nro['name'], startStatus = '', endStatus= str_helper.json_encode(nro))
                    ps = self.get_ok_and_back_params(ps = ps, refUrl = ps['refUrl'])
                else:
                    ps['msg'] = state.ResultInfo.get(101, '')
            except error.RightError as e:
                ps['msg'] = e.msg
        ps = self.format_none_to_empty(ps)
        self.render('admin/role/add_or_edit.html', **ps)
Esempio n. 28
0
    def post(self):
        id = int(self.get_arg('id', '0'))

        user = self.get_oper_user()
        try:
            of = func_logic.query_one_by_id(id)
            type = func_logic.delete(id = id, user = user)
            if type:
                self.write_oper_log(action = 'funcDelete', targetType = 3, targetID = str(of['id']), targetName = of['name'], startStatus = str_helper.json_encode(of), endStatus= '')
                self.out_ok()
            else:
                self.out_fail(code = 101)
        except error.RightError as e:
            self.out_fail(code=e.code)
Esempio n. 29
0
 def post(self):
     id = int(self.get_arg('id', '0'))
     user = self.get_oper_user()
     oro = role_logic.query_one(id)
     type = role_logic.delete(id = id, user = user)
     if type:
         self.write_oper_log(action = 'roleDelete', targetType = 5, targetID = str(oro['id']), targetName = oro['name'], startStatus = str_helper.json_encode(oro), endStatus= '')
         self.out_ok()
     else:
         self.out_fail(code = 101)
Esempio n. 30
0
    def post(self):
        ps = self.get_page_config(title='创建部门')
        if ps['isedit']:
            ps['title'] = self.get_page_title('编辑部门')

        dep = self.get_args(['name', 'remark'], '')
        dep['status'] = int(self.get_arg('status', '0'))
        dep['id'] = int(self.get_arg('id', '0'))
        ps['dep'] = dep
        msg = self.check_str_empty_input(dep, ['name'])
        if str_helper.is_null_or_empty(msg) == False:
            ps['msg'] = msg
            self.render('admin/department/add_or_edit_bs.html', **ps)
            return
        dep['user'] = self.get_oper_user()
        if ps['isedit']:
            self.check_oper_right(right=state.operEdit)

            try:
                od = department_logic.query_one(dep['id'])
                info = department_logic.update(id=dep['id'],
                                               name=dep['name'],
                                               status=dep['status'],
                                               remark=dep['remark'],
                                               user=dep['user'])

                if info:
                    nd = department_logic.query_one(dep['id'])
                    self.write_oper_log(action='depEdit',
                                        targetType=4,
                                        targetID=str(nd['id']),
                                        targetName=nd['name'],
                                        startStatus=str_helper.json_encode(od),
                                        endStatus=str_helper.json_encode(nd))
                    ps = self.get_ok_and_back_params(ps=ps,
                                                     refUrl=ps['refUrl'])
                else:
                    ps['msg'] = state.ResultInfo.get(101, '')
            except error.RightError as e:
                ps['msg'] = e.msg
        else:
            self.check_oper_right(right=state.operAdd)
            try:
                info = department_logic.add(name=dep['name'],
                                            status=dep['status'],
                                            remark=dep['remark'],
                                            user=dep['user'])
                if info:
                    nd = department_logic.query_one_by_name(dep['name'])
                    self.write_oper_log(action='depCreate',
                                        targetType=4,
                                        targetID=str(nd['id']),
                                        targetName=nd['name'],
                                        startStatus='',
                                        endStatus=str_helper.json_encode(nd))
                    ps = self.get_ok_and_back_params(ps=ps,
                                                     refUrl=ps['refUrl'])
                else:
                    ps['msg'] = state.ResultInfo.get(101, '')
            except error.RightError as e:
                ps['msg'] = e.msg
        ps = self.format_none_to_empty(ps)
        self.render('admin/department/add_or_edit_bs.html', **ps)
Esempio n. 31
0
    def post(self):
        ps = self.get_page_config(title='创建应用')
        if ps['isedit']:
            ps['title'] = self.get_page_title('编辑应用')

        app = self.get_args(['code', 'name', 'developer', 'url', 'remark'], '')
        app['status'] = int(self.get_arg('status', '0'))
        ps['app'] = app
        msg = self.check_str_empty_input(app, ['code', 'name', 'url'])
        if str_helper.is_null_or_empty(msg) == False:
            ps['msg'] = msg
            self.render('admin/application/add_or_edit_bs.html', **ps)
            return
        codeType = str_helper.check_num_abc__(app['code'])
        if codeType == False:
            ps['msg'] = state.ResultInfo.get(101006, '')
            self.render('admin/application/add_or_edit_bs.html', **ps)
            return
        app['user'] = self.get_oper_user()
        if ps['isedit']:
            self.check_oper_right(right=state.operEdit)
            try:
                oa = application_logic.query_one(app['code'])
                info = application_logic.update(name=app['name'],
                                                code=app['code'],
                                                developer=app['developer'],
                                                url=app['url'],
                                                status=app['status'],
                                                remark=app['remark'],
                                                user=app['user'])
                if info:
                    na = application_logic.query_one(app['code'])
                    self.write_oper_log(action='appEdit',
                                        targetType=2,
                                        targetID=oa['code'],
                                        targetName=oa['name'],
                                        startStatus=str_helper.json_encode(oa),
                                        endStatus=str_helper.json_encode(na))
                    ps = self.get_ok_and_back_params(ps=ps,
                                                     refUrl=ps['refUrl'])
                else:
                    ps['msg'] = state.ResultInfo.get(101, '')
            except error.RightError as e:
                ps['msg'] = e.msg
        else:
            self.check_oper_right(right=state.operAdd)
            try:
                info = application_logic.add(name=app['name'],
                                             code=app['code'],
                                             developer=app['developer'],
                                             url=app['url'],
                                             status=app['status'],
                                             remark=app['remark'],
                                             user=app['user'])
                if info:
                    # funcname = app['name'] + '管理'
                    # self._add_app_func(name = funcname, code= app['code'], user = app['user'])
                    na = application_logic.query_one(app['code'])
                    self.write_oper_log(action='appCreate',
                                        targetType=2,
                                        targetID=na['code'],
                                        targetName=na['name'],
                                        startStatus='',
                                        endStatus=str_helper.json_encode(na))
                    ps = self.get_ok_and_back_params(ps=ps,
                                                     refUrl=ps['refUrl'])
                else:
                    ps['msg'] = state.ResultInfo.get(101, '')
            except error.RightError as e:
                ps['msg'] = e.msg
        ps = self.format_none_to_empty(ps)
        self.render('admin/application/add_or_edit_bs.html', **ps)
Esempio n. 32
0
    def post(self):
        params = self.get_args(['appCode', 'name', 'code', 'parentPath', 'customJson', 'rights', 'remark', 'user'], '')
        params['sort'] = int(self.get_arg('sort', '0'))
        params['status'] = int(self.get_arg('status', '0'))

        msg = self.check_str_empty_input(params, ['appCode', 'name', 'code', 'parentPath', 'user'])
        if str_helper.is_null_or_empty(msg) == False:
            self.out_fail(code = 1001, msg = msg)
            return

        btype = str_helper.check_num_abc__(params['code'])
        if btype == False:
            self.out_fail(code = 1001, msg = '编号参数只允许输入英文字母、数字和下划线')
            return

        parent = func_logic.query_one_by_path(path = params['parentPath'])
        if None == parent:
            self.out_fail(code = 102004)
            return

        path = parent['path']+'.'+params['code']
        func = func_logic.query_one_by_path(path = path)
        if None != func:
            self.out_fail(code = 102003)
            return

        user = user_logic.query_one_by_name(params['user'])
        if None == user:
            self.out_fail(code = 103002)

        try:
            result = func_logic.add(appCode = params['appCode'], name = params['name'], 
                code = params['code'], parentID = parent['id'], path = path, rights = params['rights'],
                customJson = params['customJson'], sort = params['sort'], 
                status = params['status'], remark = params['remark'], user = params['user'])

            self.out_ok()
            
            self.write_oper_log(action = 'funcCreateInterface', targetType = 3, targetID = str(result), targetName = params['name'], startStatus = '', endStatus= str_helper.json_encode(params), user = user)
        except error.RightError as e:
            self.out_fail(code=e.code)
            return
        return
Esempio n. 33
0
    def post(self):
        self.check_oper_right(right = state.operEdit)
        ps = self.get_page_config(title = '编辑角色权限')
        ps['roleID'] = int(self.get_arg('roleID', '0'))
        ps['appCode'] = self.get_arg('appCode', '')
        funcs = func_logic.query_all_by_app(ps['appCode'])     #获得应用下的所有功能

        funcs = role_logic.init_func_right(funcs)
        rights = []

        for func in funcs:      #收集权限数据
            map = {}
            map['funcID'] = func['id']
            r = int(self.get_arg(('right_%d_1' % func['id']), '0'))
            r = r + int(self.get_arg(('right_%d_2' % func['id']), '0'))
            r = r + int(self.get_arg(('right_%d_4' % func['id']), '0'))
            r = r + int(self.get_arg(('right_%d_8' % func['id']), '0'))
            func['right'] = r
            map['right'] = r
            customRight = ''
            if func['customJson'] != None:                
                for c in func['customJson']:
                    cid = self.get_arg(('rightcustom_%d_%s' % (func['id'], c['k'])), '')
                    if cid != '':
                        customRight = customRight + cid + ','
                        c['right'] = True
                    else:
                        c['right'] = False
                if customRight != '':
                    customRight = ',' + customRight
            
            map['customRight'] = customRight
            rights.append(map)

        #保存权限信息
        type = role_logic.add_right_by_role_app(appCode = ps['appCode'], 
            roleID = ps['roleID'], rights = rights, user = self.get_oper_user())
        
        roles = role_logic.query_all_by_active()
        apps = application_logic.query_all_by_active()
        ps['apps'] = apps
        ps['roles'] = roles
        ps = self.format_none_to_empty(ps)
        ps['funcs'] = funcs

        if type:
            self.write_oper_log(action = 'roleSetRight', targetType = 5, targetID = str(ps['roleID']), targetName = ps['appCode'], startStatus = '', endStatus= str_helper.json_encode(rights))
            ps = self.get_ok_and_back_params(ps = ps, refUrl = ps['refUrl'])
        else:
            ps['msg'] = state.ResultInfo.get(104004, '')
        self.render('admin/role/right_edit_bs.html', **ps)
Esempio n. 34
0
    def post(self):
        self.check_oper_right(right = state.operEdit)
        ps = self.get_page_config(title = '编辑角色权限')
        ps['roleID'] = int(self.get_arg('roleID', '0'))
        ps['appCode'] = self.get_arg('appCode', '')
        funcs = func_logic.query_all_by_app(ps['appCode'])     #获得应用下的所有功能

        funcs = role_logic.init_func_right(funcs)
        rights = []

        for func in funcs:      #收集权限数据
            map = {}
            map['funcID'] = func['id']
            r = int(self.get_arg(('right_%d_1' % func['id']), '0'))
            r = r + int(self.get_arg(('right_%d_2' % func['id']), '0'))
            r = r + int(self.get_arg(('right_%d_4' % func['id']), '0'))
            r = r + int(self.get_arg(('right_%d_8' % func['id']), '0'))
            func['right'] = r
            map['right'] = r
            customRight = ''
            if func['customJson'] != None:                
                for c in func['customJson']:
                    cid = self.get_arg(('rightcustom_%d_%s' % (func['id'], c['k'])), '')
                    if cid != '':
                        customRight = customRight + cid + ','
                        c['right'] = True
                    else:
                        c['right'] = False
                if customRight != '':
                    customRight = ',' + customRight
            
            map['customRight'] = customRight
            rights.append(map)

        #保存权限信息
        type = role_logic.add_right_by_role_app(appCode = ps['appCode'], 
            roleID = ps['roleID'], rights = rights, user = self.get_oper_user())
        
        roles = role_logic.query_all_by_active()
        apps = application_logic.query_all_by_active()
        ps['apps'] = apps
        ps['roles'] = roles
        ps = self.format_none_to_empty(ps)
        ps['funcs'] = funcs

        if type:
            self.write_oper_log(action = 'roleSetRight', targetType = 5, targetID = str(ps['roleID']), targetName = ps['appCode'], startStatus = '', endStatus= str_helper.json_encode(rights))
            ps = self.get_ok_and_back_params(ps = ps, refUrl = ps['refUrl'])
        else:
            ps['msg'] = state.ResultInfo.get(104004, '')
        self.render('admin/role/right_edit.html', **ps)
Esempio n. 35
0
    def post(self):
        ps = self.get_page_config(title = '创建部门')        
        if ps['isedit']:
            ps['title'] = self.get_page_title('编辑部门')
        
        dep = self.get_args(['name', 'remark'], '')
        dep['status'] = int(self.get_arg('status', '0'))
        dep['id'] = int(self.get_arg('id', '0'))
        ps['dep'] = dep        
        msg = self.check_str_empty_input(dep, ['name'])
        if str_helper.is_null_or_empty(msg) == False:
            ps['msg'] = msg
            self.render('admin/department/add_or_edit_bs.html', **ps)
            return
        dep['user'] = self.get_oper_user()
        if ps['isedit']:
            self.check_oper_right(right = state.operEdit)

            try:
                od = department_logic.query_one(dep['id'])
                info = department_logic.update(id = dep['id'], name = dep['name'], 
                    status = dep['status'], remark = dep['remark'], user = dep['user'])
                
                if info:
                    nd = department_logic.query_one(dep['id'])
                    self.write_oper_log(action = 'depEdit', targetType = 4, targetID = str(nd['id']), targetName = nd['name'], startStatus = str_helper.json_encode(od), endStatus= str_helper.json_encode(nd))
                    ps = self.get_ok_and_back_params(ps = ps, refUrl = ps['refUrl'])
                else:
                    ps['msg'] = state.ResultInfo.get(101, '')
            except error.RightError as e:
                ps['msg'] = e.msg
        else:
            self.check_oper_right(right = state.operAdd)
            try:
                info = department_logic.add(name = dep['name'],
                        status = dep['status'], remark = dep['remark'], user = dep['user'])
                if info:
                    nd = department_logic.query_one_by_name(dep['name'])
                    self.write_oper_log(action = 'depCreate', targetType = 4, targetID = str(nd['id']), targetName = nd['name'], startStatus = '', endStatus= str_helper.json_encode(nd))
                    ps = self.get_ok_and_back_params(ps = ps, refUrl = ps['refUrl'])
                else:
                    ps['msg'] = state.ResultInfo.get(101, '')
            except error.RightError as e:
                ps['msg'] = e.msg
        ps = self.format_none_to_empty(ps)
        self.render('admin/department/add_or_edit_bs.html', **ps)
Esempio n. 36
0
    def post(self):
        func = self.get_args(['appCode', 'name', 'code', 'customJson', 'remark'], '')
        func['id'] = int(self.get_arg('id', '0'))
        func['parentID'] = int(self.get_arg('parentID', '0'))
        func['sort'] = int(self.get_arg('sort', '0'))
        
        msg = self.check_str_empty_input(func, ['code', 'name', 'appCode'])
        if str_helper.is_null_or_empty(msg) == False:
            self.out_fail(code = 1001, msg = msg)
            return
        btype = str_helper.check_num_abc__(func['code'])
        if btype == False:
            self.out_fail(code = 1001, msg = '编号参数只允许输入英文字母、数字和下划线')
            return
        func['user'] = self.get_oper_user()
        if func['id'] <= 0:
            self.check_oper_right(right = state.operAdd)
            if func['parentID'] <= 0:
                func['path'] = '%s.%s' % (func['appCode'], func['code'])
            else:
                func['path'] = '%s.%s' % ((func_logic.query_one_by_id(func['parentID'])).get('path'), func['code'])
            func['status'] = state.Boole['true']

            f = func_logic.query_one_by_path(path = func['path'])
            if None != f:
                self.out_fail(code = 102003)
                return
            try:
                result = func_logic.add(appCode = func['appCode'], name = func['name'], code = func['code'], 
                            parentID = func['parentID'], path = func['path'], customJson = func['customJson'], sort = func['sort'], 
                            status = func['status'], remark = func['remark'], user = func['user'])
                nf = func_logic.query_one_by_path(func['path'])
                self.write_oper_log(action = 'funcCreate', targetType = 3, targetID = str(nf['id']), targetName = nf['name'], startStatus = '', endStatus= str_helper.json_encode(nf))
            except error.RightError as e:
                self.out_fail(code=e.code)
                return
        else:
            self.check_oper_right(right = state.operEdit)
            try:
                of = func_logic.query_one_by_id(func['id'])
                func_logic.update(id = func['id'], name = func['name'],sort = func['sort'], 
                                customJson = func['customJson'],remark = func['remark'],user = func['user'])
                nf = func_logic.query_one_by_id(func['id'])
                self.write_oper_log(action = 'funcEdit', targetType = 3, targetID = str(nf['id']), targetName = nf['name'], startStatus = str_helper.json_encode(of), endStatus= str_helper.json_encode(nf))
            except error.RightError as e:
                self.out_fail(code=e.code)
                return
        self.out_ok()
Esempio n. 37
0
 def post(self):
     ps = self.get_page_config(title = '创建用户组')
     if ps['isedit']:
         ps['title'] = self.get_page_title('编辑用户组')
     
     usergroup = self.get_args(['id', 'name', 'remark'], '')
     usergroup['status'] = int(self.get_arg('status', '0'))
     msg = self.check_str_empty_input(usergroup, ['name'])
     ps['usergroup'] = usergroup
     if str_helper.is_null_or_empty(msg) == False:
         ps['msg'] = msg
         ps = self.format_none_to_empty(ps)
         self.render('admin/usergroup/add_or_edit_bs.html', **ps)
         return
     usergroup['user'] = self.get_oper_user()
     
     if ps['isedit']:
         try:
             og = usergroup_logic.query_one(usergroup['id'])
             info = usergroup_logic.update(id = usergroup['id'], name = usergroup['name'], 
                 status = usergroup['status'], remark = usergroup['remark'], user = usergroup['user'])
             if info:
                 ng = usergroup_logic.query_one(usergroup['id'])
                 self.write_oper_log(action = 'userGroupEdit', targetType = 6, targetID = str(ng['id']), targetName = ng['name'], startStatus = str_helper.json_encode(og), endStatus= str_helper.json_encode(ng))
                 ps = self.get_ok_and_back_params(ps = ps, refUrl = ps['refUrl'])
             else:
                 ps['msg'] = state.ResultInfo.get(101, '')
         except error.RightError as e:
             ps['msg'] = e.msg
     else:
         try:
             info = usergroup_logic.add(name = usergroup['name'], 
                 status = usergroup['status'], remark = usergroup['remark'], user = usergroup['user'])
             if info > 0:
                 ng = usergroup_logic.query_one_by_name(usergroup['name'])
                 self.write_oper_log(action = 'userGroupCreate', targetType = 6, targetID = str(ng['id']), targetName = ng['name'], startStatus = '', endStatus= str_helper.json_encode(ng))
                 ps = self.get_ok_and_back_params(ps = ps, refUrl = ps['refUrl'])
             else:
                 ps['msg'] = state.ResultInfo.get(101, '')
         except error.RightError as e:
             ps['msg'] = e.msg
     ps = self.format_none_to_empty(ps)
     self.render('admin/usergroup/add_or_edit_bs.html', **ps)
Esempio n. 38
0
    def post(self):
        id = int(self.get_arg('id', '0'))

        user = self.get_oper_user()
        try:
            of = func_logic.query_one_by_id(id)
            type = func_logic.delete(id = id, user = user)
            if type:
                self.write_oper_log(action = 'funcDelete', targetType = 3, targetID = str(of['id']), targetName = of['name'], startStatus = str_helper.json_encode(of), endStatus= '')
                self.out_ok()
            else:
                self.out_fail(code = 101)
        except error.RightError as e:
            self.out_fail(code=e.code)
Esempio n. 39
0
    def post(self):
        ps = self.get_page_config(title = '创建角色')
        if ps['isedit']:
            ps['title'] = self.get_page_title('编辑角色')

        role = self.get_args(['id', 'name', 'remark'], '')
        role['status'] = int(self.get_arg('status', '0'))
        ps['role'] = role
        msg = self.check_str_empty_input(role, ['name'])
        if str_helper.is_null_or_empty(msg) == False:
            ps['msg'] = msg
            ps = self.format_none_to_empty(ps)
            self.render('admin/role/add_or_edit_bs.html', **ps)
            return
        role['user'] = self.get_oper_user()
        
        if ps['isedit']:
            self.check_oper_right(right = state.operEdit)
            try:
                oro = role_logic.query_one(role['id'])
                info = role_logic.update(id = role['id'], name = role['name'], 
                        status = role['status'], remark = role['remark'], user = role['user'])                
                if info:                    
                    nro = role_logic.query_one(role['id'])
                    self.write_oper_log(action = 'roleEdit', targetType = 5, targetID = str(nro['id']), targetName = nro['name'], startStatus = str_helper.json_encode(oro), endStatus= str_helper.json_encode(nro))
                    ps = self.get_ok_and_back_params(ps = ps, refUrl = ps['refUrl'])
                else:
                    ps['msg'] = state.ResultInfo.get(101, '')
            except error.RightError as e:
                ps['msg'] = e.msg
        else:
            self.check_oper_right(right = state.operAdd)
            try:
                info = role_logic.add(name = role['name'], 
                        status = role['status'], remark = role['remark'], user = role['user'])
                if info > 0:
                    nro = role_logic.query_one_by_name(role['name'])
                    self.write_oper_log(action = 'roleEdit', targetType = 5, targetID = str(nro['id']), targetName = nro['name'], startStatus = '', endStatus= str_helper.json_encode(nro))
                    ps = self.get_ok_and_back_params(ps = ps, refUrl = ps['refUrl'])
                else:
                    ps['msg'] = state.ResultInfo.get(101, '')
            except error.RightError as e:
                ps['msg'] = e.msg
        ps = self.format_none_to_empty(ps)
        self.render('admin/role/add_or_edit_bs.html', **ps)