first push
This commit is contained in:
82
authentication/log.py
Normal file
82
authentication/log.py
Normal file
@@ -0,0 +1,82 @@
|
||||
import time
|
||||
from functools import wraps
|
||||
|
||||
from authentication.models import Log, SystemUserProfile
|
||||
import requests
|
||||
|
||||
|
||||
def log_function_info(func):
|
||||
@wraps(func)
|
||||
def wrapper(request, *args, **kwargs):
|
||||
start_time = time.time()
|
||||
response = func(request, *args, **kwargs)
|
||||
duration = time.time() - start_time
|
||||
log = Log(
|
||||
user=request.user,
|
||||
function_name=func.__name__,
|
||||
request=request,
|
||||
response=response,
|
||||
request_body=request.data,
|
||||
response_body=response.data,
|
||||
duration=duration,
|
||||
status=response.status_code
|
||||
)
|
||||
log.save()
|
||||
return response
|
||||
|
||||
return wrapper
|
||||
|
||||
|
||||
def log_viewset_info(func):
|
||||
@wraps(func)
|
||||
def wrapper(viewset, request, *args, **kwargs):
|
||||
start_time = time.time()
|
||||
response = func(viewset, request, *args, **kwargs)
|
||||
duration = time.time() - start_time
|
||||
log = Log(
|
||||
user=request.user,
|
||||
function_name=func.__name__,
|
||||
request=request,
|
||||
response=response,
|
||||
request_body=request.data,
|
||||
response_body=response.data,
|
||||
duration=duration,
|
||||
status=response.status_code
|
||||
)
|
||||
log.save()
|
||||
return response
|
||||
|
||||
return wrapper
|
||||
|
||||
|
||||
def log_sms(func):
|
||||
@wraps(func)
|
||||
def wrapper(request, *args, **kwargs):
|
||||
response = func(request, *args, **kwargs)
|
||||
operator = SystemUserProfile.objects.get(user=request.user)
|
||||
roles = None
|
||||
users = None
|
||||
message = request.data['message']
|
||||
if 'role' in request.data.keys():
|
||||
roles = request.data['role']
|
||||
if 'user' in request.data.keys():
|
||||
users = request.data['user']
|
||||
|
||||
if roles != None and users != None:
|
||||
users = SystemUserProfile.objects.filter(role__name__in=roles, key__in=users,
|
||||
province=operator.province).order_by('id')
|
||||
elif roles != None:
|
||||
users = SystemUserProfile.objects.filter(role__name__in=roles, province=operator.province).order_by('id')
|
||||
else:
|
||||
users = SystemUserProfile.objects.filter(key__in=users, province=operator.province).order_by('id')
|
||||
|
||||
for user in users:
|
||||
u = "http://webservice.sahandsms.com/newsmswebservice.asmx/SendPostUrl?username=pmstores&password=Aht00100&from=30002501&to={}&message={}".format(
|
||||
user.mobile, message)
|
||||
url = u.format()
|
||||
payload = {}
|
||||
headers = {"Content-Type": "application/x-www-form-urlencoded"}
|
||||
r = requests.request("GET", url, headers=headers, data=payload)
|
||||
return response
|
||||
|
||||
return wrapper
|
||||
Reference in New Issue
Block a user