def get(self, request, args=None): if args == 'all': try: page = request.GET.get('page') user = request.GET.get('username').strip() department = request.GET.get('department').strip() valve = request.GET.get('valve') except KeyError as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) else: try: start = int(page) * 10 - 10 end = int(page) * 10 if valve == 'true': if department != '': page_number = Account.objects.filter(username__contains=user, department__contains=department).count() user = Account.objects.filter(username__contains=user, department__contains=department)[start:end] else: page_number = Account.objects.filter(username__contains=user).count() user = Account.objects.filter(username__contains=user)[start:end] else: page_number = Account.objects.count() user = Account.objects.all()[start:end] serializers = UserINFO(user, many=True) return Response({'page': page_number, 'data': serializers.data}) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(e) elif args == 'permissions': user = set_auth_group(request.GET.get('user')) return Response(user)
def get(self, request, args=None): if args == 'all': try: page = request.GET.get('page') except KeyError as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) else: try: page_number = Account.objects.count() start = int(page) * 10 - 10 end = int(page) * 10 info = Account.objects.all()[start:end] serializers = UserINFO(info, many=True) return Response({ 'page': page_number, 'data': serializers.data }) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(e) elif args == 'permissions': user = set_auth_group(request.GET.get('user')) return Response(user)
def put(self, request, args=None): if args == 'todolist': try: todo = Todolist.objects.filter(username=request.user).all() return Response([{'title': i.content} for i in todo]) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) elif args == 'deltodo': try: todo = request.data['todo'] except KeyError as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) else: try: Todolist.objects.filter(username=request.user, content=todo).delete() return Response('') except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) elif args == 'ownspace': info = Account.objects.filter(username=request.user).get() _serializers = UserINFO(info) permissions = set_auth_group(request.user) return Response({'userinfo': _serializers.data, 'permissons': permissions}) elif args == 'statement': Account.objects.filter(username=request.user).update(last_name='pass') return Response('')
def post(self, request, args=None): try: _type = request.data['permissions_type'] + 'edit' permission = set_auth_group(request.user) return Response(permission[_type]) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500)
def get(self, request, args=None): try: _type = request.GET.get('permissions_type') + 'con' permission = set_auth_group(request.user) _c = [x for x in permission[_type]] return Response(_c) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500)
def get(self, request, args=None): if args == 'pie': try: alter = SqlOrder.objects.filter(type=0, username=request.user).count() sql = SqlOrder.objects.filter(type=1, username=request.user).count() return Response([alter, sql]) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) elif args == 'infocard': try: dic = SqlDictionary.objects.count() user = Account.objects.count() order = SqlOrder.objects.filter(username=request.user).count() link = DatabaseList.objects.count() return Response([dic, user, order, link]) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) elif args == 'messages': try: user = request.GET.get('username') except KeyError as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) else: try: count = Usermessage.objects.filter( state='unread', to_user=user).aggregate(messagecount=Count('id')) statement = Account.objects.filter( username=request.user).first() if statement.id == 1: return Response({ 'count': count, 'statement': statement.last_name }) else: return Response({'count': count, 'statement': '1'}) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) elif args == 'menu': permissions = set_auth_group(request.user) return Response(json.dumps(permissions))
def post(self, request, args=None): try: conf = configparser.ConfigParser() conf.read('deploy.conf') ip = conf.get('mysql', 'address') user = conf.get('mysql', 'username') db = conf.get('mysql', 'db') password = conf.get('mysql', 'password') except KeyError: CUSTOM_ERROR.error('''The configuration file information is missing!''') return HttpResponse(status=500) else: try: _c = request.data['permissions_type'] + 'export' permissions = set_auth_group(request.user) if permissions[_c] == '0': return Response( { 'status': '该账户没有导出数据字典权限', 'url': '' } ) data = json.loads(request.data['data']) connection_name = request.data['connection_name'] basename = request.data['basename'] except KeyError as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) else: try: c = exportdocx.ToWord( Host=ip, User=user, Password=password, Database=db, Charset='utf8') a = c.exportTables(Conn=connection_name, Schemal=basename, TableList=data) return Response( { 'status': 'docx文档已生成', 'url': '%s_%s_Dictionary_%s.docx' % (connection_name, basename, a) } ) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500)
def post(self, request, args=None): try: conf = configparser.ConfigParser() conf.read('deploy.conf') ip = conf.get('mysql', 'address') user = conf.get('mysql', 'username') db = conf.get('mysql', 'db') password = conf.get('mysql', 'password') except KeyError: CUSTOM_ERROR.error( '''The configuration file information is missing!''') return HttpResponse(status=500) else: try: _c = request.data['permissions_type'] + 'export' permissions = set_auth_group(request.user) if permissions[_c] == '0': return Response({'status': '该账户没有导出数据字典权限', 'url': ''}) data = json.loads(request.data['data']) connection_name = request.data['connection_name'] basename = request.data['basename'] except KeyError as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) else: try: c = exportdocx.ToWord(Host=ip, User=user, Password=password, Database=db, Charset='utf8') a = c.exportTables(Conn=connection_name, Schemal=basename, TableList=data) return Response({ 'status': 'docx文档已生成', 'url': '%s_%s_Dictionary_%s.docx' % (connection_name, basename, a) }) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500)
def get(self, request, args=None): if args == 'pie': try: alter = SqlOrder.objects.filter(type=0, username=request.user).count() sql = SqlOrder.objects.filter(type=1, username=request.user).count() return Response([alter, sql]) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) elif args == 'infocard': try: data = { "createUser": Account.objects.count(), "order": SqlOrder.objects.filter(username=request.user).count(), "link": DatabaseList.objects.count(), "env": Env.objects.count(), "service": Service.objects.count() } return Response(data) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) elif args == 'messages': try: statement = Account.objects.filter( username=request.user).first() if statement.id == 1: return Response({'statement': statement.last_name}) else: return Response({'statement': 'pass'}) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) elif args == 'menu': permissions = set_auth_group(request.user) return Response(json.dumps(permissions))
def get(self, request, args=None): if args == 'all': try: page = request.GET.get('page') except KeyError as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) else: try: page_number = Account.objects.count() start = int(page) * 10 - 10 end = int(page) * 10 info = Account.objects.all()[start:end] serializers = UserINFO(info, many=True) return Response({'page': page_number, 'data': serializers.data}) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(e) elif args == 'permissions': user = set_auth_group(request.GET.get('user')) return Response(user)
def put(self, request, args=None): if args == 'todolist': try: todo = Todolist.objects.filter(username=request.user).all() return Response([{'title': i.content} for i in todo]) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) elif args == 'deltodo': try: todo = request.data['todo'] except KeyError as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) else: try: Todolist.objects.filter(username=request.user, content=todo).delete() return Response('') except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) elif args == 'ownspace': info = Account.objects.filter(username=request.user).get() _serializers = UserINFO(info) permissions = set_auth_group(request.user) return Response({ 'userinfo': _serializers.data, 'permissons': permissions }) elif args == 'statement': Account.objects.filter(username=request.user).update( last_name='pass') return Response('')
def get(self, request, args=None): if args == 'pie': try: alter = SqlOrder.objects.filter(type=0, username=request.user).count() sql = SqlOrder.objects.filter(type=1, username=request.user).count() return Response([alter, sql]) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) elif args == 'infocard': try: dic = SqlDictionary.objects.count() user = Account.objects.count() order = SqlOrder.objects.filter(username=request.user).count() link = DatabaseList.objects.count() return Response([dic, user, order, link]) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) elif args == 'messages': try: statement = Account.objects.filter(username=request.user).first() if statement.id == 1: return Response({'statement': statement.last_name}) else: return Response({'statement': 'pass'}) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) elif args == 'menu': permissions = set_auth_group(request.user) return Response(json.dumps(permissions))
def put(self, request, args=None): if args == 'connection': try: assigned = set_auth_group(request.user) un_init = util.init_conf() custom_com = ast.literal_eval(un_init['other']) if request.data['permissions_type'] == 'user' or request.data[ 'permissions_type'] == 'own_space': info = DatabaseList.objects.all() con_name = Area(info, many=True).data dic = SqlDictionary.objects.all().values('Name') dic.query.distinct = ['Name'] elif request.data['permissions_type'] == 'query': con_name = [] permission_spec = grained.objects.filter( username=request.user).first() if permission_spec.permissions['query'] == '1': for i in permission_spec.permissions['querycon']: con_instance = DatabaseList.objects.filter( connection_name=i).first() if con_instance: con_name.append({ 'id': con_instance.id, 'connection_name': con_instance.connection_name, 'ip': con_instance.ip, 'computer_room': con_instance.computer_room }) assigned = set_auth_group(request.user) return Response({ 'assigend': assigned['person'], 'connection': con_name, 'custom': custom_com['con_room'] }) else: con_name = [] _type = request.data['permissions_type'] + 'con' permission_spec = grained.objects.filter( username=request.user).first() for i in permission_spec.permissions[_type]: con_instance = DatabaseList.objects.filter( connection_name=i).first() if con_instance: con_name.append({ 'id': con_instance.id, 'connection_name': con_instance.connection_name, 'ip': con_instance.ip, 'computer_room': con_instance.computer_room }) dic = '' info = Account.objects.filter(group='admin').all() serializers = UserINFO(info, many=True) return Response({ 'connection': con_name, 'person': serializers.data, 'dic': dic, 'assigend': assigned['person'], 'custom': custom_com['con_room'], 'multi': custom_com['multi'] }) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) elif args == "basename": try: con_id = request.data['id'] except KeyError as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) else: _connection = DatabaseList.objects.filter(id=con_id).first() try: with con_database.SQLgo(ip=_connection.ip, user=_connection.username, password=_connection.password, port=_connection.port) as f: res = f.baseItems(sql='show databases') return Response(res) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) elif args == 'tablename': try: data = json.loads(request.data['data']) basename = data['basename'] con_id = request.data['id'] except KeyError as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') else: _connection = DatabaseList.objects.filter(id=con_id).first() try: with con_database.SQLgo(ip=_connection.ip, user=_connection.username, password=_connection.password, port=_connection.port, db=basename) as f: res = f.baseItems(sql='show tables') return Response(res) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) elif args == 'field': try: connection_info = json.loads(request.data['connection_info']) table = connection_info['tablename'] basename = connection_info['basename'] con_id = request.data['id'] except KeyError as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') else: try: _connection = DatabaseList.objects.filter( id=con_id).first() with con_database.SQLgo(ip=_connection.ip, user=_connection.username, password=_connection.password, port=_connection.port, db=basename) as f: res = f.gen_alter(table_name=table) return Response(res) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) elif args == 'indexdata': try: login = json.loads(request.data['login']) table = request.data['table'] basename = login['basename'] con_id = request.data['id'] except KeyError as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') else: try: _connection = DatabaseList.objects.filter( id=con_id).first() with con_database.SQLgo(ip=_connection.ip, user=_connection.username, password=_connection.password, port=_connection.port, db=basename) as f: res = f.index(table_name=table) return Response(res) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(e)
def put(self, request, args=None): if args == 'connection': try: assigned = set_auth_group(request.user) un_init = util.init_conf() custom_com = ast.literal_eval(un_init['other']) print("user:"******"basename": try: con_id = request.data['id'] except KeyError as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) else: _connection = DatabaseList.objects.filter(id=con_id).first() try: with con_database.SQLgo(ip=_connection.ip, user=_connection.username, password=_connection.password, port=_connection.port) as f: res = f.baseItems(sql='show databases') exclude_db = serachsql.exclued_db_list() for db in exclude_db: if db in res: res.remove(db) return Response(res) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) elif args == 'tablename': try: data = json.loads(request.data['data']) basename = data['basename'] con_id = request.data['id'] except KeyError as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') else: _connection = DatabaseList.objects.filter(id=con_id).first() try: with con_database.SQLgo(ip=_connection.ip, user=_connection.username, password=_connection.password, port=_connection.port, db=basename) as f: res = f.baseItems(sql='show tables') return Response(res) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) elif args == 'field': try: connection_info = json.loads(request.data['connection_info']) table = connection_info['tablename'] basename = connection_info['basename'] con_id = request.data['id'] except KeyError as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') else: try: _connection = DatabaseList.objects.filter( id=con_id).first() with con_database.SQLgo(ip=_connection.ip, user=_connection.username, password=_connection.password, port=_connection.port, db=basename) as f: field = f.gen_alter(table_name=table) idx = f.index(table_name=table) return Response({'idx': idx, 'field': field}) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500)