62 lines
2.0 KiB
Python
62 lines
2.0 KiB
Python
#!/usr/bin/env python3
|
||
"""Admin hesaplarını PROJE DIŞINA kaydeder: ~/.config/key-ajansi/admins.json
|
||
|
||
Kullanım:
|
||
python3 setup_admins.py # rastgele güçlü şifreler üretir
|
||
ADMIN1_PW=... ADMIN2_PW=... python3 setup_admins.py # kendi şifrenizi verin
|
||
|
||
Dosyada yalnızca şifrelenmiş (hash) kopyalar saklanır; düz şifre asla yazılmaz.
|
||
"""
|
||
import json
|
||
import os
|
||
import secrets
|
||
import sys
|
||
|
||
from werkzeug.security import generate_password_hash
|
||
|
||
import security
|
||
|
||
ADMIN1_USER = "eymenmert"
|
||
ADMIN1_NAME = "Eymen Mert YİĞİT"
|
||
ADMIN2_USER = "mehmedkudret"
|
||
ADMIN2_NAME = "Mehmed Kudret ERDOĞMUŞ"
|
||
|
||
|
||
def main():
|
||
pw1 = os.environ.get("ADMIN1_PW") or secrets.token_urlsafe(12)
|
||
pw2 = os.environ.get("ADMIN2_PW") or secrets.token_urlsafe(12)
|
||
|
||
if security.CONFIG_PATH == security.DEFAULT_CONFIG_PATH and os.path.exists(security.CONFIG_PATH):
|
||
sys.exit("Yapılandırma zaten var. Sıfırlamak için dosyayı silin:\n " + security.CONFIG_PATH)
|
||
|
||
payload = {
|
||
"secret": secrets.token_urlsafe(48),
|
||
"admins": [
|
||
{
|
||
"username": ADMIN1_USER,
|
||
"display_name": ADMIN1_NAME,
|
||
"password_hash": generate_password_hash(pw1, method="pbkdf2:sha256"),
|
||
},
|
||
{
|
||
"username": ADMIN2_USER,
|
||
"display_name": ADMIN2_NAME,
|
||
"password_hash": generate_password_hash(pw2, method="pbkdf2:sha256"),
|
||
},
|
||
],
|
||
}
|
||
|
||
os.makedirs(os.path.dirname(security.CONFIG_PATH), exist_ok=True)
|
||
with open(security.CONFIG_PATH, "w", encoding="utf-8") as fh:
|
||
json.dump(payload, fh, indent=2, ensure_ascii=False)
|
||
os.chmod(security.CONFIG_PATH, 0o600)
|
||
|
||
print("Admin yapılandırması kaydedildi:", security.CONFIG_PATH)
|
||
print()
|
||
print(f" Admin 1 | kullanıcı adı: {ADMIN1_USER} | şifre: {pw1}")
|
||
print(f" Admin 2 | kullanıcı adı: {ADMIN2_USER} | şifre: {pw2}")
|
||
print()
|
||
print("Bu şifreleri güvenli bir yere not edin; bir daha gösterilmez.")
|
||
|
||
|
||
if __name__ == "__main__":
|
||
main() |