Fixed userprofile.custom_role_id updating issue in update_role, fixed userprofile.changed_by logging
This commit is contained in:
parent
67da8681e5
commit
838d6926fc
@ -119,14 +119,16 @@ class ZendeskAdmin:
|
|||||||
raise ValueError('invalid access_controller`s login data')
|
raise ValueError('invalid access_controller`s login data')
|
||||||
|
|
||||||
|
|
||||||
def update_role(user_profile: UserProfile, role: str) -> UserProfile:
|
def update_role(user_profile: UserProfile, role: int) -> UserProfile:
|
||||||
"""
|
"""
|
||||||
Функция **update_role** меняет роль пользователя.
|
Функция **update_role** меняет роль пользователя.
|
||||||
"""
|
"""
|
||||||
zendesk = ZendeskAdmin()
|
zendesk = ZendeskAdmin()
|
||||||
user = zendesk.get_user(user_profile.user.email)
|
user = zendesk.get_user(user_profile.user.email)
|
||||||
user.custom_role_id = role
|
user.custom_role_id = role
|
||||||
|
user_profile.custom_role_id = role
|
||||||
zendesk.admin.users.update(user)
|
zendesk.admin.users.update(user)
|
||||||
|
user_profile.save()
|
||||||
|
|
||||||
|
|
||||||
def make_engineer(user_profile: UserProfile) -> UserProfile:
|
def make_engineer(user_profile: UserProfile) -> UserProfile:
|
||||||
@ -390,19 +392,25 @@ class StatisticData:
|
|||||||
class DatabaseHandler(logging.Handler):
|
class DatabaseHandler(logging.Handler):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
logging.Handler.__init__(self)
|
logging.Handler.__init__(self)
|
||||||
self.database = RoleChangeLogs()
|
|
||||||
|
|
||||||
def emit(self, record):
|
def emit(self, record):
|
||||||
user = record.msg
|
database = RoleChangeLogs()
|
||||||
self.database.name = user.name
|
users = record.msg
|
||||||
self.database.user = user.user
|
if users[1]:
|
||||||
self.database.changed_by = user.user
|
user = users[0]
|
||||||
|
admin = users[1]
|
||||||
|
elif not users[1]:
|
||||||
|
user = users[0]
|
||||||
|
admin = users[0]
|
||||||
|
database.name = user.name
|
||||||
|
database.user = user.user
|
||||||
|
database.changed_by = admin.user
|
||||||
if user.custom_role_id == ROLES['engineer']:
|
if user.custom_role_id == ROLES['engineer']:
|
||||||
self.database.old_role = ROLES['light_agent']
|
database.old_role = ROLES['light_agent']
|
||||||
elif user.custom_role_id == ROLES['light_agent']:
|
elif user.custom_role_id == ROLES['light_agent']:
|
||||||
self.database.old_role = ROLES['engineer']
|
database.old_role = ROLES['engineer']
|
||||||
self.database.new_role = user.custom_role_id
|
database.new_role = user.custom_role_id
|
||||||
self.database.save()
|
database.save()
|
||||||
|
|
||||||
|
|
||||||
class CsvFormatter(logging.Formatter):
|
class CsvFormatter(logging.Formatter):
|
||||||
@ -410,32 +418,41 @@ class CsvFormatter(logging.Formatter):
|
|||||||
logging.Formatter.__init__(self)
|
logging.Formatter.__init__(self)
|
||||||
|
|
||||||
def format(self, record):
|
def format(self, record):
|
||||||
user = record.msg
|
users = record.msg
|
||||||
|
if users[1]:
|
||||||
|
user = users[0]
|
||||||
|
admin = users[1]
|
||||||
|
elif not users[1]:
|
||||||
|
user = users[0]
|
||||||
|
admin = users[0]
|
||||||
msg = ''
|
msg = ''
|
||||||
msg += user.name
|
msg += user.name
|
||||||
if user.custom_role_id == ROLES['engineer']:
|
if user.custom_role_id == ROLES['engineer']:
|
||||||
msg += ',engineer,'
|
msg += ',engineer,'
|
||||||
elif user.custom_role_id == ROLES['light_agent']:
|
elif user.custom_role_id == ROLES['light_agent']:
|
||||||
msg.append('light_agent')
|
msg += ',light_agent,'
|
||||||
time = str(timezone.now().today())
|
time = str(timezone.now().today())
|
||||||
msg += time[:16]
|
msg += time[:16]
|
||||||
msg += ','
|
msg += ','
|
||||||
msg += user.name
|
msg += admin.name
|
||||||
return msg
|
return msg
|
||||||
|
|
||||||
|
|
||||||
def log(user):
|
def log(user, admin=0):
|
||||||
"""
|
"""
|
||||||
Осуществляет запись логов в базу данных и csv файл
|
Осуществляет запись логов в базу данных и csv файл
|
||||||
:param user: request.user.userprofile
|
:param admin:
|
||||||
|
:param user:
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
dbhandler = DatabaseHandler()
|
users = [user, admin]
|
||||||
csvformatter = CsvFormatter()
|
|
||||||
csvhandler = logging.FileHandler('logs.csv', "a")
|
|
||||||
csvhandler.setFormatter(csvformatter)
|
|
||||||
logger = logging.getLogger('MY_LOGGER')
|
logger = logging.getLogger('MY_LOGGER')
|
||||||
logger.addHandler(dbhandler)
|
if not logger.hasHandlers():
|
||||||
logger.addHandler(csvhandler)
|
dbhandler = DatabaseHandler()
|
||||||
|
csvformatter = CsvFormatter()
|
||||||
|
csvhandler = logging.FileHandler('logs.csv', "a")
|
||||||
|
csvhandler.setFormatter(csvformatter)
|
||||||
|
logger.addHandler(dbhandler)
|
||||||
|
logger.addHandler(csvhandler)
|
||||||
logger.setLevel('INFO')
|
logger.setLevel('INFO')
|
||||||
logger.info(user)
|
logger.info(users)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user