def create(request): """ 创建用户 :param request: :return: """ if request.method == "GET": groups = UserGroup.objects.all() return render_to_response("user/user_create.html", locals(), context_instance=RequestContext(request)) elif request.method == 'POST': response = {"success": False, "error": "", "id": None} try: # 获取参数 json_str = request.POST.get('json', None) if not json_str: response['error'] = '必要参数为空!' return HttpResponse(json.dumps(response), mimetype="application/json") json_obj = json.loads(json_str) username = json_obj.get('username', None) password = json_obj.get('password', None) group_str = json_obj.get('group', None) telphone = json_obj.get('telphone', None) email = json_obj.get('email', None) is_staff = json_obj.get('is_staff', None) is_active = json_obj.get('is_active', None) if not username or not password: response['error'] = '必要参数为空!' return HttpResponse(json.dumps(response), mimetype="application/json") # UserGroup group = UserGroup.objects(key=group_str) if not group: response['error'] = '非法用户组!' return HttpResponse(json.dumps(response), mimetype="application/json") group = group[0] # User if User.objects(username=username): response['error'] = '用户名已存在!' return HttpResponse(json.dumps(response), mimetype="application/json") user_obj = User.create_user(username, password, group.key, telphone=telphone, is_staff=is_staff, is_active=is_active, is_superuser=True if group.key == USER_GROUP_ADMIN else False, email=email if email else None) response["id"] = str(user_obj.id) response["success"] = True response["error"] = "执行成功!" return HttpResponse(json.dumps(response), mimetype="application/json") except Exception, e: response["error"] = "系统异常![%s]" % str(e) logger.error(response["error"] + getTraceBack()) return HttpResponse(json.dumps(response), mimetype="application/json")
def create(request): """ 创建版本 :param request: :return: """ if request.method == "GET": return render_to_response("package/package_create.html", locals(), context_instance=RequestContext(request)) elif request.method == 'POST': response = {"success": False, "error": ""} try: file_obj = request.FILES.get('uploadFile', None) file_name = file_obj.name file_size = file_obj.size #json_info = request.POST.get('json') remark = request.GET.get('remark') package_version = request.GET.get('package_version') package = Package() package.version = package_version #package.json_info = json.dumps(json.loads(json_info), ensure_ascii=False).encode(ENCODE) package.is_enabled = True package_suffix = file_name[file_name.rindex('.') + 1:] #写入流文件 package.package.put(file_obj, content_type=CONTENT_TYPE[package_suffix]) #文件名 package.package_full_name = file_name package.package_name = file_name[0:file_name.rindex('.')] package.package_suffix = package_suffix package.package_size = file_size package.remark = remark package.upload_user = User.objects(pk=request.user.id)[0] package.create_time = datetime.datetime.now() package.source = SOURCE_UPLOAD package.save() response["success"] = True response["id"] = str(package.id) response["error"] = "执行成功!" return HttpResponse(json.dumps(response), mimetype="application/json") except Exception, e: response["error"] = "系统异常![%s]" % str(e) logger.error(response["error"] + getTraceBack()) return HttpResponse(json.dumps(response), mimetype="application/json")
def inner_logger(request, *args, **kwargs): # 解析参数 user = User.objects(username=request.user.username)[0] method = request.method path = request.get_full_path() # 判断是否需要记录日志 logger_handler = get_logger_handler(method, path) # 不需要记录直接执行方法 if not logger_handler: return fn(request) # 处理并记录日志 log = '目的 : 记录[%s]核心日志 ; ' log += '用户名 : %s ; ' % user.username.encode(ENCODE) log += '方法名 : %s ; ' % method log += 'URI : %s ; ' % path.encode(ENCODE) return logger_handler(request, fn, log)
def handle_del_customer(request, fn, log): """ 处理删除客户 :param request: :param fn: """ resp = None is_success = False try: cus_id = request.POST.get("cus_id", None) log = log % '删除客户[id=%s]' % str(cus_id) old_obj = Customer.objects(pk=cus_id)[0] old_version = old_obj.version old_json = convert_customer_to_json(old_obj) # 执行方法 resp = fn(request) # 解析响应 resp_json = json.loads(resp.content) is_success = resp_json["success"] core_log = CoreLogger() core_log.collection = 'customer' core_log.operate_type = OPERATE_DELETE core_log.result_type = RESULT_TYPE_SUCCESS if is_success else RESULT_TYPE_FAILURE core_log.old_version = old_version core_log.old_data = json.dumps(old_json, ensure_ascii=False).encode(ENCODE) core_log.new_version = None core_log.new_data = None core_log.response = json.dumps(resp_json, ensure_ascii=False).encode(ENCODE) core_log.create_time = datetime.datetime.now() core_log.create_user = User.objects(username=request.user.username)[0] core_log.save() log += ' --> 执行成功!' except Exception as e: log += ' --> 记录过程异常![%s]' % str(e) finally: logger.info(log) if is_success else logger.error(log) return resp
def handle_modify_module(request, fn, log): """ 处理创建或编辑模块 :param request: :param fn: """ resp = None is_success = False try: # 获取参数 request_json = json.loads(request.POST.get("json")) # 模块ID module_id = request_json["moduleId"] log = log % ('创建模块[id=%s]' % None) if module_id is None else ('编辑模块[id=%s]' % str(module_id)) # 记录参数 old_obj = None if module_id is not None: old_obj = Module.objects(pk=module_id)[0] old_json = None old_version = None if old_obj is not None: old_version = old_obj.version old_json = convert_module_to_json(old_obj) log += '旧数据版本 : [%s] ; ' % None if old_version is None else old_version.encode(ENCODE) log += '旧数据备份 : [%s] ; ' % None if old_json is None else json.dumps(old_json, ensure_ascii=False).encode(ENCODE) # 执行方法 resp = fn(request) # 执行方法end # 方法响应参数 resp_json = json.loads(resp.content) new_json = None new_version = None if module_id is not None: new_module = Module.objects(pk=module_id)[0] new_version = new_module.version new_json = convert_module_to_json(new_module) elif resp_json['id'] is not None: new_module = Module.objects(pk=resp_json['id'])[0] new_version = new_module.version new_json = convert_module_to_json(new_module) log += '新数据版本 : [%s] ; ' % new_version.encode(ENCODE) log += '新数据备份 : [%s] ; ' % json.dumps(new_json, ensure_ascii=False).encode(ENCODE) is_success = resp_json['success'] core_log = CoreLogger() core_log.collection = 'module' core_log.operate_type = OPERATE_CREATE if module_id is None else OPERATE_UPDATE core_log.result_type = RESULT_TYPE_SUCCESS if is_success else RESULT_TYPE_FAILURE core_log.old_version = old_version core_log.old_data = None if old_json is None else json.dumps(old_json, ensure_ascii=False).encode(ENCODE) core_log.new_version = new_version core_log.new_data = json.dumps(new_json, ensure_ascii=False).encode(ENCODE) core_log.response = json.dumps(resp_json, ensure_ascii=False).encode(ENCODE) core_log.create_time = datetime.datetime.now() core_log.create_user = User.objects(username=request.user.username)[0] core_log.save() log += ' --> 执行成功!' except Exception as e: log += ' --> 记录过程异常![%s]\n[%s]' % (str(e), getTraceBack()) finally: logger.info(log) if is_success else logger.error(log) return resp
from usrmgr.models import User, UserGroup import datetime import logging import os from rpc.script.codeGenerator.base.RPCStruct import StdTypeManger from rpc.script.codeGenerator.CodeGenerator import parseFile from TTEngine.settings import * from TTEngine.constants import * from menu.models import Menu logger = logging.getLogger('django') # 初始化数据库数据 try: # user表 if len(User.objects()) == 0 : User.create_user('admin', '123', is_staff=True, is_active=True, is_superuser=True) logger.info('创建admin用户成功!') else: logger.info('已有用户,无需创建admin') except Exception as e: logger.error('程序异常 --> [%s]' % str(e)) # 初始化用户组对象 try: for item_dict in USER_GROUP_LIST: key = item_dict['k'] value = item_dict['v'] if len(UserGroup.objects(key=key)) == 0: group = UserGroup()
def edit(request): """ 版本列表编辑 :param request: :return: """ if request.method == 'GET': try: package_id = request.GET.get('id', None) if package_id is None: error = "版本ID为空!" logger.error(error) return render_to_response( 'item/temp.html', locals(), context_instance=RequestContext(request)) package = Package.objects(pk=package_id) if len(package) == 0: error = "未获取到版本对象[id=%s]" % package_id logger.error(error) return render_to_response( 'item/temp.html', locals(), context_instance=RequestContext(request)) package = package[0] is_edit = True return render_to_response("package/package_create.html", locals(), context_instance=RequestContext(request)) except Exception as e: error = "程序异常![%s]" % str(e) logger.error(error + getTraceBack()) return render_to_response('item/temp.html', locals(), context_instance=RequestContext(request)) elif request.method == 'POST': response = {"success": False, "error": ""} try: #获取参数 package_id = request.POST.get('id', None) is_enabled = request.POST.get('is_enabled', None) if is_enabled == 'true': is_enabled = True elif is_enabled == 'false': is_enabled = False else: response['error'] = "[is_enabled=%s]参数异常!" % is_enabled return HttpResponse(json.dumps(response), mimetype="application/json") remark = request.POST.get('remark', None) #json_info = request.POST.get('json_info', None) if package_id is None: response['error'] = "版本ID为空!" return HttpResponse(json.dumps(response), mimetype="application/json") package = Package.objects(pk=package_id) if len(package) == 0: response['error'] = "未获取到版本对象[id=%s]" % package_id return HttpResponse(json.dumps(response), mimetype="application/json") package = package[0] #package.version = VERSION_PREFIX_PACKAGE + str(int(time.mktime(package.create_time.timetuple()) * 1000)) #package.json_info = json.dumps(json.loads(json_info), ensure_ascii=False).encode(ENCODE) package.is_enabled = is_enabled package.remark = remark package.update_user = User.objects(pk=request.user.id)[0] package.update_time = datetime.datetime.now() package.save() response['success'] = True response['error'] = '更新成功!' return HttpResponse(json.dumps(response), mimetype="application/json") except Exception as e: response['error'] = "程序异常![%s]" % str(e) logger.error(response["error"] + getTraceBack()) return HttpResponse(json.dumps(response), mimetype="application/json")
from usrmgr.models import User, UserGroup import datetime import logging import os from rpc.script.codeGenerator.base.RPCStruct import StdTypeManger from rpc.script.codeGenerator.CodeGenerator import parseFile from TTEngine.settings import * from TTEngine.constants import * from menu.models import Menu logger = logging.getLogger('django') # 初始化数据库数据 try: # user表 if len(User.objects()) == 0: User.create_user('admin', '123', is_staff=True, is_active=True, is_superuser=True) logger.info('创建admin用户成功!') else: logger.info('已有用户,无需创建admin') except Exception as e: logger.error('程序异常 --> [%s]' % str(e)) # 初始化用户组对象 try: for item_dict in USER_GROUP_LIST:
def edit(request): """ 编辑用户 :param request: :return: """ if request.method == "GET": try: # 标记编辑 is_edit = True id = request.GET.get("id", None) if id is None: error = '必要参数为空!' logger.error(error) return render_to_response('item/temp.html', locals(), context_instance=RequestContext(request)) user_obj = User.objects.get(pk=id) groups = UserGroup.objects.all() return render_to_response("user/user_create.html", locals(), context_instance=RequestContext(request)) except Exception as e: error = '编辑用户异常![%s]' % str(e) logger.error(error + getTraceBack()) return render_to_response('item/temp.html', locals(), context_instance=RequestContext(request)) elif request.method == 'POST': response = {"success": False, "error": "", "id": None} try: # 获取参数 json_str = request.POST.get('json', None) if not json_str: response['error'] = '必要参数为空!' return HttpResponse(json.dumps(response), mimetype="application/json") json_obj = json.loads(json_str) user_id = json_obj.get('user_id', None) password = json_obj.get('password', None) group_str = json_obj.get('group', None) email = json_obj.get('email', None) is_staff = json_obj.get('is_staff', None) is_active = json_obj.get('is_active', None) if not user_id or not password: response['error'] = '必要参数为空!' return HttpResponse(json.dumps(response), mimetype="application/json") # UserGroup group = UserGroup.objects(key=group_str) if not group: response['error'] = '非法用户组!' return HttpResponse(json.dumps(response), mimetype="application/json") group = group[0] # User user = User.objects(pk=user_id) if not user: response['error'] = '用户未找到!' return HttpResponse(json.dumps(response), mimetype="application/json") user = user[0] user.password = make_password(password) user.group = group.key user.email = email if email else None user.is_staff = is_staff user.is_active = is_active user.is_superuser = True if group.key == USER_GROUP_ADMIN else False user.save() response["success"] = True response["error"] = "执行成功!" return HttpResponse(json.dumps(response), mimetype="application/json") except Exception, e: response["error"] = "系统异常![%s]" % str(e) logger.error(response["error"] + getTraceBack()) return HttpResponse(json.dumps(response), mimetype="application/json")