-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathcreate_superuser.py
More file actions
118 lines (95 loc) · 3.16 KB
/
create_superuser.py
File metadata and controls
118 lines (95 loc) · 3.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#!/usr/bin/env python3
# Event Horizon - Futuristic Event Management Platform
# Copyright (C) 2025-2026 Arnav Ghosh
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
"""
Event Horizon - Superuser Creation Module
Provides functions for creating superuser accounts programmatically.
"""
import os
import sys
def setup_django():
"""Initialize Django environment."""
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "EventHorizon.settings")
import django
django.setup()
def create_superuser(
username="admin",
password="Ihapwics123$",
first_name="Administrator",
last_name="Staff",
verbose=True,
):
"""
Create a superuser account with specified credentials.
Args:
username (str): Username for the superuser
email (str): Email address for the superuser
password (str): Password for the superuser
first_name (str): First name of the superuser
last_name (str): Last name of the superuser
verbose (bool): Whether to print status messages
Returns:
tuple: (success: bool, message: str)
"""
try:
from django.contrib.auth import get_user_model
User = get_user_model()
if User.objects.filter(username=username).exists():
message = f"Superuser '{username}' already exists."
if verbose:
print(message)
return False, message
if verbose:
print(f"Creating superuser '{username}'...")
User.objects.create_superuser(
username=username,
email=email,
password=password,
first_name=first_name,
last_name=last_name,
)
message = (
f"Superuser '{username}' created successfully with password '{password}'"
)
if verbose:
print(message)
return True, message
except Exception as e:
message = f"Failed to create superuser: {str(e)}"
if verbose:
print(f"Error: {message}")
return False, message
def main():
"""Main function for standalone script execution."""
setup_django()
# Default credentials
username = "admin"
password = "Ihapwics123$"
first_name = "Administrator"
last_name = "Staff"
success, message = create_superuser(
username=username,
email=email,
password=password,
first_name=first_name,
last_name=last_name,
verbose=True,
)
sys.exit(0 if success else 1)
if __name__ == "__main__":
main()