init here
This commit is contained in:
118
sploits/common/__init__.py
Normal file
118
sploits/common/__init__.py
Normal file
@@ -0,0 +1,118 @@
|
||||
import json
|
||||
import random
|
||||
import sys
|
||||
import requests
|
||||
|
||||
HOST = sys.argv[1]
|
||||
PORT = 1337
|
||||
BASE = f"http://{HOST}:{PORT}"
|
||||
|
||||
|
||||
def random_string(length=8):
|
||||
letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
return ''.join(random.choice(letters) for _ in range(length))
|
||||
|
||||
|
||||
def register_teacher(
|
||||
first_name,
|
||||
last_name,
|
||||
password,
|
||||
username,
|
||||
education="Pony",
|
||||
middle_name="Автотестович",
|
||||
):
|
||||
url = f"{BASE}/api/users"
|
||||
data = {
|
||||
"имя": first_name,
|
||||
"фамилия": last_name,
|
||||
"отчество": middle_name,
|
||||
"образование": education,
|
||||
"пароль": password,
|
||||
"повтор пароля": password,
|
||||
}
|
||||
|
||||
response = requests.post(url, data=json.dumps(data, ensure_ascii=False))
|
||||
|
||||
if response.status_code != 201:
|
||||
print(
|
||||
f"Failed to register teacher: {response.status_code} "
|
||||
f"{response.text}"
|
||||
)
|
||||
sys.exit(1)
|
||||
|
||||
data = response.json()
|
||||
|
||||
return (username, password, data["идентификатор"])
|
||||
|
||||
|
||||
def register_random_teacher():
|
||||
first_name = random_string()
|
||||
last_name = random_string()
|
||||
password = random_string()
|
||||
username = f"{first_name}.{last_name}"
|
||||
|
||||
return register_teacher(first_name, last_name, password, username)
|
||||
|
||||
|
||||
def create_class(teacher_credentials):
|
||||
headers = get_auth_headers(teacher_credentials)
|
||||
|
||||
url = f"{BASE}/api/classes"
|
||||
data = {
|
||||
"номер": 11,
|
||||
"буква": "Б",
|
||||
}
|
||||
|
||||
response = requests.post(
|
||||
url,
|
||||
data=json.dumps(data, ensure_ascii=False),
|
||||
headers=headers
|
||||
)
|
||||
|
||||
if response.status_code != 201:
|
||||
print(
|
||||
f"Failed to create class: {response.status_code} {response.text}"
|
||||
)
|
||||
sys.exit(1)
|
||||
|
||||
class_info = response.json()
|
||||
return class_info["идентификатор"]
|
||||
|
||||
|
||||
def create_student(teacher_credentials):
|
||||
headers = get_auth_headers(teacher_credentials)
|
||||
password = random_string()
|
||||
|
||||
url = f"{BASE}/api/students"
|
||||
data = {
|
||||
"имя": random_string(),
|
||||
"фамилия": random_string(),
|
||||
"отчество": "Автотестович",
|
||||
"снилс": random_string(),
|
||||
"паспорт": random_string(),
|
||||
"пароль": password,
|
||||
"повтор пароля": password,
|
||||
}
|
||||
|
||||
response = requests.post(
|
||||
url,
|
||||
data=json.dumps(data, ensure_ascii=False),
|
||||
headers=headers
|
||||
)
|
||||
|
||||
if response.status_code != 201:
|
||||
print(
|
||||
f"Failed to create student: {response.status_code} {response.text}"
|
||||
)
|
||||
sys.exit(1)
|
||||
|
||||
class_info = response.json()
|
||||
return class_info["идентификатор"]
|
||||
|
||||
|
||||
def get_auth_headers(teacher_credentials):
|
||||
return {
|
||||
"Authorization": (
|
||||
f"Basic {teacher_credentials[0]} {teacher_credentials[1]}"
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user