Files

62 lines
2.0 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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()