update of an outadet approach of the user adding in the current version
This commit is contained in:
@@ -497,6 +497,58 @@ def check_nm_pwd(username, password):
|
|||||||
finally:
|
finally:
|
||||||
client.close()
|
client.close()
|
||||||
|
|
||||||
|
def add_admin(
|
||||||
|
username,
|
||||||
|
password,
|
||||||
|
name='',
|
||||||
|
last_name='',
|
||||||
|
is_student=False,
|
||||||
|
permission_preset='full_access',
|
||||||
|
action_permissions=None,
|
||||||
|
page_permissions=None,
|
||||||
|
):
|
||||||
|
"""
|
||||||
|
Add a new user to the database.
|
||||||
|
"""
|
||||||
|
if not check_password_strength(password):
|
||||||
|
return False
|
||||||
|
|
||||||
|
client = MongoClient(cfg.MONGODB_HOST, cfg.MONGODB_PORT)
|
||||||
|
try:
|
||||||
|
db = _get_tenant_db(client)
|
||||||
|
users = db['users']
|
||||||
|
|
||||||
|
permission_defaults = build_default_permission_payload(permission_preset)
|
||||||
|
|
||||||
|
if isinstance(action_permissions, dict):
|
||||||
|
for key, value in action_permissions.items():
|
||||||
|
permission_defaults['actions'][str(key)] = bool(value)
|
||||||
|
|
||||||
|
if isinstance(page_permissions, dict):
|
||||||
|
for key, value in page_permissions.items():
|
||||||
|
permission_defaults['pages'][str(key)] = bool(value)
|
||||||
|
|
||||||
|
safe_name = name.strip() if name else ''
|
||||||
|
safe_last_name = last_name.strip() if last_name else ''
|
||||||
|
|
||||||
|
user_doc = {
|
||||||
|
'Username': username,
|
||||||
|
'Password': hashing(password),
|
||||||
|
'Admin': True,
|
||||||
|
'active_ausleihung': None,
|
||||||
|
'name': dp.encrypt_text(safe_name) if safe_name else '',
|
||||||
|
'last_name': dp.encrypt_text(safe_last_name) if safe_last_name else '',
|
||||||
|
'IsStudent': bool(is_student),
|
||||||
|
'PermissionPreset': permission_defaults['preset'],
|
||||||
|
'ActionPermissions': permission_defaults['actions'],
|
||||||
|
'PagePermissions': permission_defaults['pages'],
|
||||||
|
}
|
||||||
|
|
||||||
|
users.insert_one(user_doc)
|
||||||
|
return True
|
||||||
|
finally:
|
||||||
|
client.close()
|
||||||
|
|
||||||
|
|
||||||
def add_user(
|
def add_user(
|
||||||
username,
|
username,
|
||||||
|
|||||||
+1
-1
@@ -207,7 +207,7 @@ tenant_id = sys.argv[1].lower()
|
|||||||
mode = sys.argv[2]
|
mode = sys.argv[2]
|
||||||
sanitized = "".join(c for c in tenant_id if c.isalnum() or c == "_")
|
sanitized = "".join(c for c in tenant_id if c.isalnum() or c == "_")
|
||||||
|
|
||||||
us.add_user("admin", "admin123", "admin", "admin", permission_preset='full_access')
|
us.add_admin("admin", "admin123", "admin", "admin")
|
||||||
us.make_admin("admin")
|
us.make_admin("admin")
|
||||||
print("Fallback successfully applied")
|
print("Fallback successfully applied")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user