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