예제 #1
0
파일: user.py 프로젝트: linkcheng/my-common
    def post(self, request):
        uid = request.POST.get('uid')
        orig_pwd = request.POST.get('orig_pwd')
        new_pwd1 = request.POST.get('new_pwd1')
        new_pwd2 = request.POST.get('new_pwd2')

        orig_password = des_encryptor.decrypt(orig_pwd)
        new_password1 = des_encryptor.decrypt(new_pwd1)
        new_password2 = des_encryptor.decrypt(new_pwd2)

        if new_password1 != new_password2:
            msg = {
                'status': 'failure',
                'message': '两次输入密码不一致',
            }
            return jsonify(msg)

        user = User.objects.get(id=uid)
        logger.info(orig_password)
        if user.check_password(orig_password):
            user.set_password(new_password1)
            user.save()
            msg = {'status': 'success'}
        else:
            msg = {
                'status': 'failure',
                'message': '原密码输入错误',
            }

        return jsonify(msg)
예제 #2
0
파일: menu.py 프로젝트: linkcheng/my-common
    def get(self, request, index=0):
        index = int(index)
        if index:
            menu = Menu.objects.filter(id=index).first()
            msg = {
                'status':
                'success',
                'data':
                model_to_dict(menu, exclude=['created_time', 'updated_time'])
            }
            return jsonify(msg)
        else:
            menu_list = Menu.objects.all().order_by('parent_id',
                                                    '-order').values()

            paginator = Paginator(menu_list, 15)
            # get 方法获取页数
            page = request.GET.get('page', 1)
            try:  # 获取某页
                menu_list = paginator.page(page)
            except PageNotAnInteger:  # 如果 page 参数不为正整数,显示第一页
                menu_list = paginator.page(1)
            except EmptyPage:  # 如果 page 参数为空页,跳到最后一页
                menu_list = paginator.page(paginator.num_pages)

            context = {'menu_list': menu_list}
            if request.user.has_perm('user.write_menu'):
                context['writable'] = '1'

            return render_with_menu(request, 'menu.html', context)
예제 #3
0
파일: user.py 프로젝트: linkcheng/my-common
    def post(self, request):
        username = request.POST.get('username')
        pwd = request.POST.get('password')
        password = des_encryptor.decrypt(pwd)

        user = authenticate(username=username, password=password)
        if user is None:
            msg = {
                'status': 'failure',
                'message': '用户名或密码错误',
            }
        elif not user.is_active:
            msg = {
                'status': 'failure',
                'message': '用户未激活',
            }
        elif is_already_login(user):
            msg = {
                'status': 'failure',
                'message': '用户已经在他设备登陆',
            }
        else:
            login(request, user)
            msg = {'status': 'success'}
        return jsonify(msg)
예제 #4
0
    def post(self, request):
        data = request.POST
        logger.info(data)
        cid = int(data.get('cid'))
        action = data.get('action')
        db_id = data.get('database')

        fs = [
            'name', 'connector_class', 'tasks_max', 'server_name',
            'database_whitelist', 'database_blacklist', 'collection_whitelist',
            'collection_blacklist', 'is_deleted'
        ]
        kw = {k: data[k] for k in fs}
        kw['database_id'] = db_id

        if action == 'update':
            try:
                MongoConnector.objects.filter(id=cid).update(**kw)
            except Exception as e:
                msg = {'status': 'failure', 'message': str(e)}
            else:
                msg = {'status': 'success'}
        elif action == 'copy':
            try:
                MongoConnector.objects.create(**kw)
            except Exception as e:
                msg = {'status': 'failure', 'message': str(e)}
            else:
                msg = {'status': 'success'}
        else:
            msg = {'status': 'failure', 'message': 'action 不存在'}

        logger.info(msg)
        return jsonify(msg)
예제 #5
0
 def get(self, request):
     res = self.engine.get_all_db()
     return jsonify(
         {"res": [{
             "id": res.index(item),
             "dbName": item
         } for item in res]})
예제 #6
0
파일: user.py 프로젝트: linkcheng/my-common
def user_logout(request):
    """ 退出登陆
    :param request:
    :return:
    """
    logout(request)
    if request.method == 'GET':
        return render(request, 'login.html')
    else:
        msg = {'status': 'success'}
        return jsonify(msg)
예제 #7
0
 def delete(self, request):
     """
     接受delete请求的主键id,并删除表中对应的数据
     :param request:
     :return:
     """
     pk = QueryDict(request.body).dict().get('id')
     model = self.current_model(request)
     logger.info(f"DELETE-model: {model}-pk: {pk}")
     model.remove(pk)
     return jsonify({'status': 'success'})
예제 #8
0
파일: menu.py 프로젝트: linkcheng/my-common
 def delete(self, request):
     data = QueryDict(request.body)
     mid = data.get('id')
     try:
         Menu.objects.filter(id=mid).update(is_deleted=True)
     except ValueError as e:
         logger.error(str(e))
         msg = {'status': 'failure', 'message': str(e)}
     else:
         msg = {'status': 'success'}
     return jsonify(msg)
예제 #9
0
파일: menu.py 프로젝트: linkcheng/my-common
    def post(self, request):
        menu = MenuForm(request.POST)

        if menu.is_valid():
            menu.save()
            msg = {'status': 'success'}
        else:
            msg = {
                'status': 'failure',
                'message': '输入格式错误',
            }
        return jsonify(msg)
예제 #10
0
    def put(self, request):
        data = QueryDict(request.body)
        cid = int(data.get('cid'))
        action = data.get('action')

        connector = MySQLConnector.objects.filter(id=cid, is_deleted=0).first()
        if not connector:
            msg = {'status': 'failure', 'message': '配置不存在'}
            return jsonify(msg)

        logger.info(f'action={action}, server_name={connector.server_name}')
        kc = KafkaConnector(connector)
        if action == 'resume':
            msg = kc.run()
        elif action == 'pause':
            msg = kc.pause()
        elif action == 'refresh':
            msg = kc.refresh()
        else:
            msg = {'status': 'failure', 'message': 'action 不存在'}

        return jsonify(msg)
예제 #11
0
 def post(self, request):
     """
     接受post请求的新数据,插入表中
     :param request:
     :return:
     """
     model = self.current_model(request)
     data = request.POST.dict()
     logger.info(f"POST-model: {model}-data: {data}")
     for k in data.keys():
         if data[k] == '':
             del data[k]
     model.add(data)
     return jsonify({'status': 'success'})
예제 #12
0
파일: user.py 프로젝트: linkcheng/my-common
    def post(self, request):
        uid = request.POST.get('uid')
        email = request.POST.get('email')

        try:
            user = User.objects.get(id=uid)
            user.email = email
            user.save()
        except Exception as e:
            logger.error(str(e))
            msg = {'status': 'failure', 'message': str(e)}
        else:
            msg = {'status': 'success'}

        return jsonify(msg)
예제 #13
0
 def put(self, request, index):
     """
     接受put请求的更新数据,更新表
     :param request:
     :param index: 数据主键id
     :return:
     """
     data = QueryDict(request.body).dict()
     model = self.current_model(request)
     logger.info(f"PUT-model: {model}-index: {index}-data: {data}")
     for k in data.keys():
         if data[k] == '':
             del data[k]
     model.update(index, data)
     return jsonify({'status': 'success'})
예제 #14
0
    def post(self, request):
        comment = dict(
            table_schema=request.POST.get('table_schema'),
            table_name=request.POST.get('table_name'),
            content=request.POST.get('content', ''),
            user_id=request.user.id,
        )

        try:
            Comment.objects.create(**comment)
        except Exception as e:
            logger.error(str(e))
            msg = {'status': 'failure', 'message': str(e)}
        else:
            msg = {'status': 'success'}

        return jsonify(msg)
예제 #15
0
    def delete(self, request):
        data = QueryDict(request.body)
        cid = int(data.get('cid'))
        connector = MySQLConnector.objects.filter(id=cid).first()
        KafkaConnector.delete_connector(connector.server_name)

        try:
            ret = MySQLConnector.objects.filter(
                server_name=connector.server_name).aggregate(Max('is_deleted'))
            connector.is_deleted = ret.get('is_deleted__max') + 1
            connector.status = ''
            connector.save()
        except Exception as e:
            msg = {'status': 'failure', 'message': str(e)}
        else:
            msg = {'status': 'success'}

        return jsonify(msg)
예제 #16
0
    def put(self, request):
        data = QueryDict(request.body)

        user_id = request.user.id
        cid = data.get('cid')
        content = data.get('content', '')

        obj = Comment.objects.get(id=cid)
        obj.content = content
        obj.user_id = user_id
        try:
            obj.save()
        except Exception as e:
            logger.error(str(e))
            msg = {'status': 'failure', 'message': str(e)}
        else:
            msg = {'status': 'success'}

        return jsonify(msg)
예제 #17
0
파일: menu.py 프로젝트: linkcheng/my-common
    def put(self, request, index):
        index = int(index)
        data = QueryDict(request.body)

        try:
            Menu.objects.filter(id=index).update(
                name=data.get('name'),
                icon_code=data.get('icon_code'),
                parent_id=int(data.get('parent_id')),
                order=int(data.get('order')),
                menu_url=data.get('menu_url'),
                is_deleted=int(data.get('is_deleted')),
            )
        except Exception as e:
            logger.error(str(e))
            msg = {'status': 'failure', 'message': str(e)}
        else:
            msg = {'status': 'success'}

        return jsonify(msg)
예제 #18
0
파일: user.py 프로젝트: linkcheng/my-common
def user_operation_log(request, index=0):
    index = int(index)
    if index:
        menu = OperationLog.objects.filter(id=index).first()
        msg = {
            'status': 'success',
            'data': model_to_dict(menu, exclude=['created_time', 'updated_time'])
        }
        return jsonify(msg)
    else:
        log_size = OperationLog.objects.all().order_by('-created_time').count()
        cur_page = request.GET.get('page', 1)
        paginator = Paginator(log_size, cur_page)
        table_name = OperationLog._meta.db_table

        sql = f"""
            select
                *
            from {table_name} a,
            (
                select id 
                from {table_name}
                order by id desc
                limit {paginator.limit} offset {paginator.offset}
            ) b
            where a.id=b.id
            order by a.id desc
            ;
        """  # No QA
        log_list = OperationLog.objects.raw(sql)

        context = {
            'log_list': log_list,
            'paginator': paginator,
        }
        return render_with_menu(request, 'log.html', context)
예제 #19
0
파일: user.py 프로젝트: linkcheng/my-common
 def get(self, request):
     msg = {'status': 'failure', 'message': 'This method not support GET'}
     return jsonify(msg)