44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
|
from datetime import datetime
|
||
|
from pymongo import MongoClient
|
||
|
|
||
|
|
||
|
client = MongoClient("mongodb://root:catboys@mongo:27017")
|
||
|
|
||
|
|
||
|
db = client["IWM_CustomServer_DB"]
|
||
|
|
||
|
user_collection = db.users
|
||
|
maps_collection = db.maps
|
||
|
reports_collection = db.reports
|
||
|
|
||
|
general_collection = db.general
|
||
|
admin_log_collection = db.admin_log
|
||
|
|
||
|
def LogAdminAction(action_type: str, action_data: dict, UserID: int = None, success: bool = True):
|
||
|
"""Log administrator action."""
|
||
|
admin_log_collection.insert_one({
|
||
|
"date": datetime.utcnow(),
|
||
|
"action_type": action_type,
|
||
|
"action_data": action_data
|
||
|
})
|
||
|
|
||
|
def auth_check(Authorization):
|
||
|
"""Checks credentials.
|
||
|
Returns a tuple with result (for example False, "nouser").
|
||
|
|
||
|
Results:
|
||
|
- nouser = user not found
|
||
|
- wrongpass = wrong password
|
||
|
- [dictionary] = query
|
||
|
"""
|
||
|
username, password = Authorization.split(":")
|
||
|
|
||
|
query = user_collection.find_one({"Username": username})
|
||
|
if not query:
|
||
|
return False, "nouser"
|
||
|
|
||
|
if query['Password'] != password:
|
||
|
return False, "wrongpass"
|
||
|
|
||
|
return True, query
|