1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- import datetime
- import json
- import threading
- from django.utils.timezone import utc
- from Model.models import Access_Log
- from Object.TokenObject import TokenObject
- from Service.CommonService import CommonService
- from Service.TemplateService import TemplateService
- class MiscellService:
- @staticmethod
- def add_access_log(request, status_code):
- asy = threading.Thread(target=add_log_thread, args=(request, status_code))
- asy.start()
- def add_log_thread(request, status_code):
- try:
- request.encoding = 'utf-8'
- if request.method == 'GET':
- request_dict = request.GET
- elif request.method == 'POST':
- request_dict = request.POST
- else:
- return
- api_list = TemplateService.log_api()
- request_path = request.path.strip().strip('/')
- if request_path in api_list:
- user = get_access_name(request_dict=request_dict)
- ip = CommonService.get_ip_address(request)
- now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
- password = request_dict.get('userPwd', None)
- if password is not None:
- request_dict = dict(request_dict)
- request_dict.pop('userPwd')
- content = json.dumps(request_dict)
- add_data = {
- 'user': user,
- 'ip': ip,
- 'status': status_code,
- 'url': request.META['SERVER_PROTOCOL'] + '-' + request.method + '-' + request.path,
- 'operation': request_path,
- 'time': now_time,
- 'content': content
- }
- Access_Log.objects.create(**add_data)
- except Exception as e:
- print(repr(e))
- pass
- def get_access_name(request_dict):
- user_name = request_dict.get('userName', None)
- if user_name:
- return user_name
- email = request_dict.get('email', None)
- if email:
- return email
- phone = request_dict.get('phone', None)
- if phone:
- return phone
- token = request_dict.get('token', None)
- user = ''
- if token is not None:
- tko = TokenObject(token)
- if tko.code == 0:
- user = tko.user
- return user
|