crunk
6 months ago
7 changed files with 0 additions and 245 deletions
@ -1,105 +0,0 @@ |
|||||
import os |
|
||||
import shutil |
|
||||
|
|
||||
from flask import render_template |
|
||||
from sqlalchemy.exc import ( |
|
||||
DatabaseError, |
|
||||
DataError, |
|
||||
InterfaceError, |
|
||||
InvalidRequestError, |
|
||||
) |
|
||||
|
|
||||
from app import db |
|
||||
from distribusikan.distribusisinfo import DistribusisInfo |
|
||||
from forms.admindistribusiform import AdminDistribusiForm |
|
||||
from forms.adminuserform import AdminUserForm |
|
||||
from models.distribusi_model import Distribusis |
|
||||
from models.user_model import User |
|
||||
|
|
||||
|
|
||||
def AdminPage(): |
|
||||
adminuserform = AddUsersToForm(AdminUserForm()) |
|
||||
admindistribusiform = AddDistribusisToForm(AdminDistribusiForm()) |
|
||||
if admindistribusiform.validate_on_submit(): |
|
||||
DeleteDistribusis(admindistribusiform) |
|
||||
|
|
||||
if adminuserform.validate_on_submit(): |
|
||||
if adminuserform.delete.data: |
|
||||
DeleteUsers(adminuserform) |
|
||||
|
|
||||
template = render_template( |
|
||||
"admin.html", |
|
||||
adminuserform=adminuserform, |
|
||||
admindistribusiform=admindistribusiform, |
|
||||
) |
|
||||
return template |
|
||||
|
|
||||
|
|
||||
def DeleteUsers(adminuserform): |
|
||||
for userform in adminuserform: |
|
||||
if "user" in userform.id: |
|
||||
if userform.data: |
|
||||
useremail = userform.label.text |
|
||||
user = User.query.filter_by(email=useremail).first() |
|
||||
DeleteUserDistribusis(user) |
|
||||
DeleteUserFromDb(user) |
|
||||
userform.errors.append(f"User {useremail} deleted!") |
|
||||
|
|
||||
|
|
||||
def DeleteUserFromDb(user): |
|
||||
try: |
|
||||
db.session.delete(user) |
|
||||
db.session.commit() |
|
||||
except (InvalidRequestError, DataError, InterfaceError, DatabaseError): |
|
||||
db.session.rollback() |
|
||||
|
|
||||
|
|
||||
def DeleteUserDistribusis(user): |
|
||||
distribusis = DistribusisInfo.getuserdistribusis(user.email) |
|
||||
for distribusi in distribusis: |
|
||||
DeleteDistribusiFiles(distribusi.distribusiname) |
|
||||
DeleteDistribusiFromDb(distribusi) |
|
||||
|
|
||||
|
|
||||
def DeleteDistribusis(admindistribusiform): |
|
||||
for distribusiform in admindistribusiform: |
|
||||
if "distribusi" in distribusiform.id: |
|
||||
if distribusiform.data: |
|
||||
distribusiname = distribusiform.label.text |
|
||||
distribusi = Distribusis.query.filter_by( |
|
||||
distribusiname=distribusiname |
|
||||
).first() |
|
||||
DeleteDistribusiFromDb(distribusi) |
|
||||
DeleteDistribusiFiles(distribusiname) |
|
||||
distribusiform.errors.append("Deleted distribusi") |
|
||||
|
|
||||
|
|
||||
def DeleteDistribusiFromDb(distribusi): |
|
||||
try: |
|
||||
db.session.delete(distribusi) |
|
||||
db.session.commit() |
|
||||
except (InvalidRequestError, DataError, InterfaceError, DatabaseError): |
|
||||
db.session.rollback() |
|
||||
|
|
||||
|
|
||||
def DeleteDistribusiFiles(distribusiname): |
|
||||
userfolder = os.path.join("stash", distribusiname) |
|
||||
if os.path.exists(userfolder): |
|
||||
shutil.rmtree(userfolder) |
|
||||
cssfolder = os.path.join("themes/userthemes", distribusiname) |
|
||||
if os.path.exists(cssfolder): |
|
||||
shutil.rmtree(cssfolder) |
|
||||
|
|
||||
|
|
||||
def AddDistribusisToForm(admindistribusiform): |
|
||||
distribusis = DistribusisInfo.visibledistribusis() |
|
||||
admindistribusiform = AdminDistribusiForm.distribusi_list_form_builder( |
|
||||
distribusis |
|
||||
) |
|
||||
return admindistribusiform |
|
||||
|
|
||||
|
|
||||
def AddUsersToForm(adminuserform): |
|
||||
users = User.query.all() |
|
||||
adminuserform = AdminUserForm.user_list_form_builder(users) |
|
||||
return adminuserform |
|
@ -1,23 +0,0 @@ |
|||||
"""Form object declaration.""" |
|
||||
|
|
||||
from flask_wtf import FlaskForm |
|
||||
from wtforms import BooleanField, SubmitField |
|
||||
|
|
||||
|
|
||||
class AdminDistribusiForm(FlaskForm): |
|
||||
"""Admin Distribusi form.""" |
|
||||
|
|
||||
delete = SubmitField("Delete") |
|
||||
|
|
||||
def distribusi_list_form_builder(distribusis): |
|
||||
class DistribusiListForm(AdminDistribusiForm): |
|
||||
pass |
|
||||
|
|
||||
for i, distribusi in enumerate(distribusis): |
|
||||
setattr( |
|
||||
DistribusiListForm, |
|
||||
f"distribusi_{i}", |
|
||||
BooleanField(label=distribusi.distribusiname), |
|
||||
) |
|
||||
|
|
||||
return DistribusiListForm() |
|
@ -1,23 +0,0 @@ |
|||||
"""Form object declaration.""" |
|
||||
|
|
||||
from flask_wtf import FlaskForm |
|
||||
from wtforms import BooleanField, SubmitField |
|
||||
|
|
||||
|
|
||||
class AdminUserForm(FlaskForm): |
|
||||
"""Admin Userform form.""" |
|
||||
|
|
||||
def user_list_form_builder(users): |
|
||||
class UserListForm(AdminUserForm): |
|
||||
pass |
|
||||
|
|
||||
for i, user in enumerate(users): |
|
||||
setattr( |
|
||||
UserListForm, |
|
||||
f"user_{i}", |
|
||||
BooleanField(label=user.email), |
|
||||
) |
|
||||
|
|
||||
return UserListForm() |
|
||||
|
|
||||
delete = SubmitField("Delete") |
|
@ -1,15 +0,0 @@ |
|||||
"""Forgotten password form to help user.""" |
|
||||
|
|
||||
from flask_wtf import FlaskForm |
|
||||
from wtforms import StringField, SubmitField, validators |
|
||||
from wtforms.validators import Email, Length |
|
||||
|
|
||||
|
|
||||
class ForgotPasswordForm(FlaskForm): |
|
||||
"""Forgotten password distribusiverse form class.""" |
|
||||
|
|
||||
email = StringField( |
|
||||
"Email address:", |
|
||||
validators=[validators.InputRequired(), Email(), Length(6, 64)], |
|
||||
) |
|
||||
submit = SubmitField("Send email") |
|
@ -1,18 +0,0 @@ |
|||||
"""Login form to validate user.""" |
|
||||
|
|
||||
from flask_wtf import FlaskForm |
|
||||
from wtforms import PasswordField, StringField, SubmitField, validators |
|
||||
from wtforms.validators import Email, Length |
|
||||
|
|
||||
|
|
||||
class LoginForm(FlaskForm): |
|
||||
"""Login distribusiverse form class.""" |
|
||||
|
|
||||
email = StringField( |
|
||||
"Email address:", |
|
||||
validators=[validators.InputRequired(), Email(), Length(6, 64)], |
|
||||
) |
|
||||
password = PasswordField( |
|
||||
"Password:", validators=[validators.InputRequired()] |
|
||||
) |
|
||||
submit = SubmitField("Sign In") |
|
@ -1,38 +0,0 @@ |
|||||
"""Register form to make a new user.""" |
|
||||
|
|
||||
from flask_wtf import FlaskForm |
|
||||
from wtforms import PasswordField, StringField, SubmitField, validators |
|
||||
from wtforms.validators import Email, EqualTo, Length |
|
||||
|
|
||||
|
|
||||
class RegisterForm(FlaskForm): |
|
||||
"""Register for distribusi-verse form class""" |
|
||||
|
|
||||
username = StringField( |
|
||||
"Username:", |
|
||||
validators=[validators.InputRequired(), Length(3, 150)], |
|
||||
) |
|
||||
|
|
||||
email = StringField( |
|
||||
"Email address:", |
|
||||
validators=[ |
|
||||
validators.InputRequired(), |
|
||||
Email(), |
|
||||
Length(6, 128), |
|
||||
], |
|
||||
) |
|
||||
|
|
||||
password = PasswordField( |
|
||||
"New password:", |
|
||||
validators=[validators.InputRequired(), Length(12, 72)], |
|
||||
) |
|
||||
|
|
||||
confirmpassword = PasswordField( |
|
||||
"Confirm your password:", |
|
||||
validators=[ |
|
||||
validators.InputRequired(), |
|
||||
Length(12, 72), |
|
||||
EqualTo("password", message="Passwords must match !"), |
|
||||
], |
|
||||
) |
|
||||
submit = SubmitField("Register to Distribusi-verse") |
|
@ -1,23 +0,0 @@ |
|||||
"""Reset Password Form form to reset a users PasswordField.""" |
|
||||
|
|
||||
from flask_wtf import FlaskForm |
|
||||
from wtforms import PasswordField, SubmitField, validators |
|
||||
from wtforms.validators import EqualTo, Length |
|
||||
|
|
||||
|
|
||||
class ResetPasswordForm(FlaskForm): |
|
||||
"""ResetPassword for distribusi-verse form class""" |
|
||||
|
|
||||
password = PasswordField( |
|
||||
"New password:", |
|
||||
validators=[validators.InputRequired(), Length(12, 72)], |
|
||||
) |
|
||||
confirmpassword = PasswordField( |
|
||||
"Confirm your password:", |
|
||||
validators=[ |
|
||||
validators.InputRequired(), |
|
||||
Length(12, 72), |
|
||||
EqualTo("password", message="Passwords must match !"), |
|
||||
], |
|
||||
) |
|
||||
submit = SubmitField("Reset your password") |
|
Loading…
Reference in new issue