Пример #1
0
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")
Пример #2
0
def add_user(userid):
    first_name = request.data.get('first_name')
    last_name = request.data.get('last_name')
    groupids = request.data.get('groups')

    if groupids and isinstance(groupids, basestring):
        try:
            groupids = json.loads(groupids)
            if not isinstance(groupids, list):
                return jsonify({
                    'error':
                    'groups must be a json marshalled' +
                    'list of groupids, got: {}'.format(type(groupids))
                }), 400
        except Exception:
            return jsonify({
                'error':
                'groups must be a json marshalled' + 'list of groupids.'
            }), 400
    else:
        return jsonify({
            'error':
            'Wrong data type for groups, got {}'.format(type(groupids))
        }), 400

    user = fetch_user(userid)
    if user:
        return jsonify({'error':
                        'User {} already exists.'.format(userid, )}), 409

    group_objs = []
    for groupid in groupids:
        print "groupid {}".format(groupid)
        group = fetch_group(groupid)
        print "Group {}".format(group)
        if group is None:
            print "making group"
            group = Group(groupid)
            print "group made"
            group.save()
            print "group saved"

        print "group appending"
        group_objs.append(group)
        print "group appended"

    user = User(userid)
    user.first_name = first_name
    user.last_name = last_name
    print "setting group memberships"
    user.group_memberships = group_objs
    print "group memberships set"
    user.save()
    print "saved user"
    print "showing json"
    print json.dumps({'results': user.as_dict()})
    print "json shown"
    return jsonify({'results': user.as_dict()}), 201
Пример #3
0
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")
Пример #4
0
    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)
Пример #5
0
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
Пример #6
0
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
Пример #7
0
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()
Пример #8
0
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")
Пример #9
0
def list_users():
    users = User.get_all()
    return jsonify({'results': [user.as_dict() for user in users]}), 200
Пример #10
0
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:
Пример #11
0
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")