diff --git a/verse/adminpage.py b/verse/adminpage.py deleted file mode 100644 index 0bb1c39..0000000 --- a/verse/adminpage.py +++ /dev/null @@ -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 diff --git a/verse/forms/admindistribusiform.py b/verse/forms/admindistribusiform.py deleted file mode 100644 index f00f3db..0000000 --- a/verse/forms/admindistribusiform.py +++ /dev/null @@ -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() diff --git a/verse/forms/adminuserform.py b/verse/forms/adminuserform.py deleted file mode 100644 index aeda2e4..0000000 --- a/verse/forms/adminuserform.py +++ /dev/null @@ -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") diff --git a/verse/forms/forgotpasswordform.py b/verse/forms/forgotpasswordform.py deleted file mode 100644 index 385327d..0000000 --- a/verse/forms/forgotpasswordform.py +++ /dev/null @@ -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") diff --git a/verse/forms/loginform.py b/verse/forms/loginform.py deleted file mode 100644 index b446850..0000000 --- a/verse/forms/loginform.py +++ /dev/null @@ -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") diff --git a/verse/forms/registerform.py b/verse/forms/registerform.py deleted file mode 100644 index 89c42d6..0000000 --- a/verse/forms/registerform.py +++ /dev/null @@ -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") diff --git a/verse/forms/resetpasswordform.py b/verse/forms/resetpasswordform.py deleted file mode 100644 index 481cb02..0000000 --- a/verse/forms/resetpasswordform.py +++ /dev/null @@ -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")