Exemple #1
0
    def get(self):
        ps = self.get_page_config(title = '创建用户', refUrl = config.SOCRightConfig['siteDomain'] + 'Admin/User/List')

        ps['ResetPasswordType'] = self.check_oper_right_custom_right(self._rightKey, self._resetPwKey)
        if ps['isedit']:
            self.check_oper_right(right = state.operEdit)
            ps['title'] = self.get_page_title('编辑用户')
            id = int(self.get_arg('id', '0'))
            user = user_logic.query_one(id)
            if None == user:
                ps['msg'] = state.ResultInfo.get(103002, '')
                user = {'id':'', 'name':'', 'departmentID': '', 'realName':'','beginDate':'','endDate':'', 'passWord':'','mobile':'','tel':'','email':'','status':1,'lastLoginTime':'','lastLoginApp':'','lastLoginIp':'','remark':'','creater':'','createTime':'','lastUpdater':'','lastUpdateTime':''}
        else:
            self.check_oper_right(right = state.operAdd)
            user = self.get_args(['id', 'name', 'realName', 'departmentID', 'passWord', 'mobile', 'tel', 'email', 'remark'], '')
            user['beginDate'] = str_helper.get_now_datestr()
            user['endDate'] = str_helper.get_add_datest(days = 365)
            user['status'] = int(self.get_arg('status', '0'))
        ps['user'] = user
        ps['roleID'] = self.get_arg('roleID', '')
        ps['userGroupID'] = self.get_arg('userGroupID', '')
        ps['userStatus'] = state.UserStatus
        ps['deps'] = department_logic.query_all_by_active()

        ps = self.format_none_to_empty(ps)
        self.render('admin/user/add_or_edit.html', **ps)
Exemple #2
0
    def get(self):
        ps = self.get_page_config(title='创建用户',
                                  refUrl=config.SOCRightConfig['siteDomain'] +
                                  'Admin/User/List')

        ps['ResetPasswordType'] = self.check_oper_right_custom_right(
            self._rightKey, self._resetPwKey)
        if ps['isedit']:
            self.check_oper_right(right=state.operEdit)
            ps['title'] = self.get_page_title('编辑用户')
            id = int(self.get_arg('id', '0'))
            user = user_logic.query_one(id)
            if None == user:
                ps['msg'] = state.ResultInfo.get(103002, '')
                user = {
                    'id': '',
                    'name': '',
                    'departmentID': '',
                    'realName': '',
                    'beginDate': '',
                    'endDate': '',
                    'passWord': '',
                    'mobile': '',
                    'tel': '',
                    'email': '',
                    'status': 1,
                    'lastLoginTime': '',
                    'lastLoginApp': '',
                    'lastLoginIp': '',
                    'remark': '',
                    'creater': '',
                    'createTime': '',
                    'lastUpdater': '',
                    'lastUpdateTime': ''
                }
        else:
            self.check_oper_right(right=state.operAdd)
            user = self.get_args([
                'id', 'name', 'realName', 'departmentID', 'passWord', 'mobile',
                'tel', 'email', 'remark'
            ], '')
            user['beginDate'] = str_helper.get_now_datestr()
            user['endDate'] = str_helper.get_add_datest(days=365)
            user['status'] = int(self.get_arg('status', '0'))
        ps['user'] = user
        ps['roleID'] = self.get_arg('roleID', '')
        ps['userGroupID'] = self.get_arg('userGroupID', '')
        ps['userStatus'] = state.UserStatus
        ps['deps'] = department_logic.query_all_by_active()

        ps = self.format_none_to_empty(ps)
        self.render('admin/user/add_or_edit_bs.html', **ps)
Exemple #3
0
 def get(self):
     ps = self.get_page_config(title = '用户列表')
     
     ps['ExportType'] = self.check_oper_right_custom_right(self._rightKey, self._exportUserKey)
     ps['LockType'] = self.check_oper_right_custom_right(self._rightKey, self._lockUserKey)
     user = self.get_args(['id', 'realName', 'name', 'tel', 'mobile', 'email', 'createTimeBegin', 'createTimeEnd', 'lastUpdateTimeBegin', 'lastUpdateTimeEnd'], '')
     user['status'] = int(self.get_arg('status', '0'))
     user['departmentID'] = int(self.get_arg('departmentID', '0'))
     ps['deps'] = department_logic.query_all_by_active()
     ps['page'] = int(self.get_arg('page', '1'))
     ps['userStatus'] = state.UserStatus
     ps['pagedata'] = user_logic.query_page(id = user['id'],
                 name = user['name'], realName = user['realName'], departmentID = user['departmentID'],
                  tel = user['tel'], mobile = user['mobile'], email = user['email'], 
                  status = user['status'], createTimeBegin = user['createTimeBegin'], createTimeEnd = user['createTimeEnd'], lastUpdateTimeBegin = user['lastUpdateTimeBegin'], lastUpdateTimeEnd = user['lastUpdateTimeEnd'], page = ps['page'], size = ps['size'])
     ps['user'] = user
     ps = self.format_none_to_empty(ps)
     ps['pager'] = self.build_page_html(page = ps['page'], size = ps['size'], total = ps['pagedata']['total'], pageTotal = ps['pagedata']['pagetotal'])
     self.render('admin/user/list.html', **ps)
Exemple #4
0
    def get(self):

        type = self.check_oper_right_custom_right(self._rightKey, self._exportUserKey)
        if type == False:
            self.redirect(config.SOCRightConfig['siteDomain']+'Admin/NotRight')
            return

        import sys
        reload(sys)                        
        sys.setdefaultencoding('utf-8')    
        ps = self.get_page_config(title = '导出用户Excel')
        user = self.get_args(['id', 'realName', 'name', 'tel', 'mobile', 'email', 'createTimeBegin', 'createTimeEnd', 'lastUpdateTimeBegin', 'lastUpdateTimeEnd'], '')
        user['status'] = int(self.get_arg('status', '0'))
        user['departmentID'] = int(self.get_arg('departmentID', '0'))
        ps['deps'] = department_logic.query_all_by_active()
        ps['page'] = int(self.get_arg('page', '1'))
        ps['userStatus'] = state.UserStatus
        ps['pagedata'] = user_logic.query_page(id = user['id'],
                    name = user['name'], realName = user['realName'], departmentID = user['departmentID'],
                     tel = user['tel'], mobile = user['mobile'], email = user['email'], 
                     status = user['status'], createTimeBegin = user['createTimeBegin'], createTimeEnd = user['createTimeEnd'], lastUpdateTimeBegin = user['lastUpdateTimeBegin'], lastUpdateTimeEnd = user['lastUpdateTimeEnd'], page = ps['page'], size = 9999)

        users = ps['pagedata']['data']

        #生成excel文件
        info = u'''<table><tr><td>用户ID</td><td>用户名</td><td>姓名</td><td>部门</td><td>状态</td>
                    <td>最后登录时间</td><td>创建人</td><td>创建时间</td><td>最后更新人</td><td>最后更新时间</td></tr>'''

        for user in users:
            u = u'''<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td>
                    <td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>''' % (str(user['id']), user['name'], user['realName'], 
                        user['departmentName'], user['statusname'], user['lastLoginTime'], user['creater'], str(user['createTime'])[0:-3], 
                        user['lastUpdater'], str(user['lastUpdateTime'])[0:-3] )
            info = info + u
        info = info + u'</table>'
        fileName = config.SOCRightConfig['exportUserPath'] + str_helper.get_now_datestr() +'_'+ str_helper.get_uuid() + '.xls'

        path = config.SOCRightConfig['realPath'] + fileName
        file_object = open(path, 'w')
        file_object.write(info)
        file_object.close( )    
        self.redirect(config.SOCRightConfig['siteDomain']+fileName)
Exemple #5
0
    def get(self):
        ps = self.get_page_config(title='用户列表')

        ps['ExportType'] = self.check_oper_right_custom_right(
            self._rightKey, self._exportUserKey)
        ps['LockType'] = self.check_oper_right_custom_right(
            self._rightKey, self._lockUserKey)
        user = self.get_args([
            'id', 'realName', 'name', 'tel', 'mobile', 'email',
            'createTimeBegin', 'createTimeEnd', 'lastUpdateTimeBegin',
            'lastUpdateTimeEnd'
        ], '')
        user['status'] = int(self.get_arg('status', '0'))
        user['departmentID'] = int(self.get_arg('departmentID', '0'))
        ps['deps'] = department_logic.query_all_by_active()
        ps['page'] = int(self.get_arg('page', '1'))
        ps['userStatus'] = state.UserStatus
        ps['pagedata'] = user_logic.query_page(
            id=user['id'],
            name=user['name'],
            realName=user['realName'],
            departmentID=user['departmentID'],
            tel=user['tel'],
            mobile=user['mobile'],
            email=user['email'],
            status=user['status'],
            createTimeBegin=user['createTimeBegin'],
            createTimeEnd=user['createTimeEnd'],
            lastUpdateTimeBegin=user['lastUpdateTimeBegin'],
            lastUpdateTimeEnd=user['lastUpdateTimeEnd'],
            page=ps['page'],
            size=ps['size'])
        ps['user'] = user
        ps = self.format_none_to_empty(ps)
        ps['pager'] = self.build_page_html_bs(
            page=ps['page'],
            size=ps['size'],
            total=ps['pagedata']['total'],
            pageTotal=ps['pagedata']['pagetotal'])
        self.render('admin/user/list_bs.html', **ps)
Exemple #6
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)
Exemple #7
0
    def get(self):

        type = self.check_oper_right_custom_right(self._rightKey, self._exportUserKey)
        if type == False:
            self.redirect(config.SOCRightConfig['siteDomain']+'Admin/NotRight')
            return

        import sys
        reload(sys)                        
        sys.setdefaultencoding('utf-8')    
        ps = self.get_page_config(title = '导出用户Excel')
        user = self.get_args(['id', 'realName', 'name', 'tel', 'mobile', 'email', 'createTimeBegin', 'createTimeEnd', 'lastUpdateTimeBegin', 'lastUpdateTimeEnd'], '')
        user['status'] = int(self.get_arg('status', '0'))
        user['departmentID'] = int(self.get_arg('departmentID', '0'))
        ps['deps'] = department_logic.query_all_by_active()
        ps['page'] = int(self.get_arg('page', '1'))
        ps['userStatus'] = state.UserStatus
        ps['pagedata'] = user_logic.query_page(id = user['id'],
                    name = user['name'], realName = user['realName'], departmentID = user['departmentID'],
                     tel = user['tel'], mobile = user['mobile'], email = user['email'], 
                     status = user['status'], createTimeBegin = user['createTimeBegin'], createTimeEnd = user['createTimeEnd'], lastUpdateTimeBegin = user['lastUpdateTimeBegin'], lastUpdateTimeEnd = user['lastUpdateTimeEnd'], page = ps['page'], size = 999999)

        users = ps['pagedata']['data']

        userGroups = usergroup_logic.query_user_user_group(id = user['id'],
                    name = user['name'], realName = user['realName'], departmentID = user['departmentID'],
                     tel = user['tel'], mobile = user['mobile'], email = user['email'], 
                     status = user['status'], createTimeBegin = user['createTimeBegin'], createTimeEnd = user['createTimeEnd'], lastUpdateTimeBegin = user['lastUpdateTimeBegin'], lastUpdateTimeEnd = user['lastUpdateTimeEnd'])

        userGroupRoles = role_logic.query_user_user_group_role(id = user['id'],
                    name = user['name'], realName = user['realName'], departmentID = user['departmentID'],
                     tel = user['tel'], mobile = user['mobile'], email = user['email'], 
                     status = user['status'], createTimeBegin = user['createTimeBegin'], createTimeEnd = user['createTimeEnd'], lastUpdateTimeBegin = user['lastUpdateTimeBegin'], lastUpdateTimeEnd = user['lastUpdateTimeEnd'])

        userRoles =  role_logic.query_user_role(id = user['id'],
                    name = user['name'], realName = user['realName'], departmentID = user['departmentID'],
                     tel = user['tel'], mobile = user['mobile'], email = user['email'], 
                     status = user['status'], createTimeBegin = user['createTimeBegin'], createTimeEnd = user['createTimeEnd'], lastUpdateTimeBegin = user['lastUpdateTimeBegin'], lastUpdateTimeEnd = user['lastUpdateTimeEnd'])

        userGroupMap = {}
        rolesMap = {}

        for user in users:
            uid = str(user['id'])
            ug = []
            ugids = []
            #检索用户的所属用户组
            for userGroup in userGroups:
                if uid == str(userGroup['userID']):
                    ug.append(userGroup['userGroupName'])
                    ugids.append(str(userGroup['userGroupID']))
            userGroupMap[str(uid)] = ','.join(ug)

            ur = []
            for userRole in userRoles:
                if uid == str(userRole['userID']):
                    ur.append(userRole['roleName'])

            for ugid in ugids:
                for userGroupRole in userGroupRoles:
                    if ugid == str(userGroupRole['userGroupID']):
                        if userGroupRole['roleName'] not in ur:
                            ur.append(userGroupRole['roleName'])
            rolesMap[uid] = ','.join(ur)

        #生成excel文件
        info = u'''<table><tr><td>用户ID</td><td>用户名</td><td>姓名</td><td>部门</td><td>状态</td><td>锁定时间</td>
                    <td>最后登录时间</td><td>创建人</td><td>创建时间</td><td>最后更新人</td><td>最后更新时间</td><td>绑定用户组</td><td>绑定角色</td></tr>'''

        for user in users:
            uid = str(user['id'])
            u = u'''<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td>
                    <td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>''' % (str(user['id']), user['name'], user['realName'], 
                        user['departmentName'], user['statusname'], str(user['lockTime'])[0:-3], user['lastLoginTime'], user['creater'], str(user['createTime'])[0:-3], 
                        user['lastUpdater'], str(user['lastUpdateTime'])[0:-3], userGroupMap.get(uid,''), rolesMap.get(uid,''))
            info = info + u
        info = info + u'</table>'
        fileName = config.SOCRightConfig['exportUserPath'] + str_helper.get_now_datestr() +'_'+ str_helper.get_uuid() + '.xls'

        path = config.SOCRightConfig['realPath'] + fileName
        file_object = open(path, 'w')
        file_object.write(info)
        file_object.close( )    
        self.redirect(config.SOCRightConfig['siteDomain']+fileName)
Exemple #8
0
    def get(self):

        type = self.check_oper_right_custom_right(self._rightKey,
                                                  self._exportUserKey)
        if type == False:
            self.redirect(config.SOCRightConfig['siteDomain'] +
                          'Admin/NotRight')
            return

        import sys
        reload(sys)
        sys.setdefaultencoding('utf-8')
        ps = self.get_page_config(title='导出用户Excel')
        user = self.get_args([
            'id', 'realName', 'name', 'tel', 'mobile', 'email',
            'createTimeBegin', 'createTimeEnd', 'lastUpdateTimeBegin',
            'lastUpdateTimeEnd'
        ], '')
        user['status'] = int(self.get_arg('status', '0'))
        user['departmentID'] = int(self.get_arg('departmentID', '0'))
        ps['deps'] = department_logic.query_all_by_active()
        ps['page'] = int(self.get_arg('page', '1'))
        ps['userStatus'] = state.UserStatus
        ps['pagedata'] = user_logic.query_page(
            id=user['id'],
            name=user['name'],
            realName=user['realName'],
            departmentID=user['departmentID'],
            tel=user['tel'],
            mobile=user['mobile'],
            email=user['email'],
            status=user['status'],
            createTimeBegin=user['createTimeBegin'],
            createTimeEnd=user['createTimeEnd'],
            lastUpdateTimeBegin=user['lastUpdateTimeBegin'],
            lastUpdateTimeEnd=user['lastUpdateTimeEnd'],
            page=ps['page'],
            size=999999)

        users = ps['pagedata']['data']

        userGroups = usergroup_logic.query_user_user_group(
            id=user['id'],
            name=user['name'],
            realName=user['realName'],
            departmentID=user['departmentID'],
            tel=user['tel'],
            mobile=user['mobile'],
            email=user['email'],
            status=user['status'],
            createTimeBegin=user['createTimeBegin'],
            createTimeEnd=user['createTimeEnd'],
            lastUpdateTimeBegin=user['lastUpdateTimeBegin'],
            lastUpdateTimeEnd=user['lastUpdateTimeEnd'])

        userGroupRoles = role_logic.query_user_user_group_role(
            id=user['id'],
            name=user['name'],
            realName=user['realName'],
            departmentID=user['departmentID'],
            tel=user['tel'],
            mobile=user['mobile'],
            email=user['email'],
            status=user['status'],
            createTimeBegin=user['createTimeBegin'],
            createTimeEnd=user['createTimeEnd'],
            lastUpdateTimeBegin=user['lastUpdateTimeBegin'],
            lastUpdateTimeEnd=user['lastUpdateTimeEnd'])

        userRoles = role_logic.query_user_role(
            id=user['id'],
            name=user['name'],
            realName=user['realName'],
            departmentID=user['departmentID'],
            tel=user['tel'],
            mobile=user['mobile'],
            email=user['email'],
            status=user['status'],
            createTimeBegin=user['createTimeBegin'],
            createTimeEnd=user['createTimeEnd'],
            lastUpdateTimeBegin=user['lastUpdateTimeBegin'],
            lastUpdateTimeEnd=user['lastUpdateTimeEnd'])

        userGroupMap = {}
        rolesMap = {}

        for user in users:
            uid = str(user['id'])
            ug = []
            ugids = []
            #检索用户的所属用户组
            for userGroup in userGroups:
                if uid == str(userGroup['userID']):
                    ug.append(userGroup['userGroupName'])
                    ugids.append(str(userGroup['userGroupID']))
            userGroupMap[str(uid)] = ','.join(ug)

            ur = []
            for userRole in userRoles:
                if uid == str(userRole['userID']):
                    ur.append(userRole['roleName'])

            for ugid in ugids:
                for userGroupRole in userGroupRoles:
                    if ugid == str(userGroupRole['userGroupID']):
                        if userGroupRole['roleName'] not in ur:
                            ur.append(userGroupRole['roleName'])
            rolesMap[uid] = ','.join(ur)

        #生成excel文件
        info = u'''<table><tr><td>用户ID</td><td>用户名</td><td>姓名</td><td>部门</td><td>状态</td><td>锁定时间</td>
                    <td>最后登录时间</td><td>创建人</td><td>创建时间</td><td>最后更新人</td><td>最后更新时间</td><td>绑定用户组</td><td>绑定角色</td></tr>'''

        for user in users:
            uid = str(user['id'])
            u = u'''<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td>
                    <td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>''' % (
                str(user['id']), user['name'], user['realName'],
                user['departmentName'], user['statusname'],
                str(user['lockTime'])[0:-3], user['lastLoginTime'],
                user['creater'], str(user['createTime'])[0:-3],
                user['lastUpdater'], str(user['lastUpdateTime'])[0:-3],
                userGroupMap.get(uid, ''), rolesMap.get(uid, ''))
            info = info + u
        info = info + u'</table>'
        fileName = config.SOCRightConfig[
            'exportUserPath'] + str_helper.get_now_datestr(
            ) + '_' + str_helper.get_uuid() + '.xls'

        path = config.SOCRightConfig['realPath'] + fileName
        file_object = open(path, 'w')
        file_object.write(info)
        file_object.close()
        self.redirect(config.SOCRightConfig['siteDomain'] + fileName)
Exemple #9
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)