Sindbad~EG File Manager

Current Path : /home/numerotech/pvkn-school.numerotech.com/pvkn_school/core/controller/
Upload File :
Current File : //home/numerotech/pvkn-school.numerotech.com/pvkn_school/core/controller/BOAdminController.py

from flask import render_template,request,flash,redirect,url_for, Blueprint,session,json
import datetime
from datetime import timedelta,date,datetime
from core.model.BOAdminModel import BOAdminModel
# from .. import Cryptography
from core.library.cryptography import Cryptography
from flask import  app

import os
from os import path

from core.library.email import EMAIL
import random

app = Blueprint('bo_admin', __name__)

@app.route('/bologin', methods = ["GET","POST"])
def BOLogin():
	return render_template('BO_Admin/login.html')


@app.route('/postbologin', methods = ["GET","POST"])
def PostBOLogin():
		email       =  request.values.get('email') 
		password    =  request.values.get('password') 
		if not email and password:
			flash("Please Enter UserName and Password","errorMsg")
			return redirect(url_for('bo_admin.BOLogin'))
		else:
			user_output = BOAdminModel().boUserDataByEmail(email)
			if user_output : 
				email   = user_output['email']
				db_pass =  user_output['password']
				if password == db_pass:
					session["admin"] = user_output
					flash("Login Successfully..","successMsg")
					return redirect (url_for('bo_admin.DashBoard')) 
				else : 
					flash('Passsword invalid. Please check the password. ' ,"errorMsg" )
					return redirect (url_for('bo_admin.BOLogin'))
			else :
				flash("Email-id not registered ." ,"errorMsg")
				return redirect (url_for('bo_admin.BOLogin'))  		

			return redirect (url_for('bo_admin.BOLogin'))   
	


@app.route("/logout")
def Logout():
	session.pop('admin', None)
	flash("Logout Successfully..","successMsg")
	return redirect(url_for('bo_admin.BOLogin'))


@app.route('/dashboard',methods=["GET","POST"])
def DashBoard():

	return render_template('BO_Admin/dashboard.html')


@app.route('/backoffice',methods=["GET","POST"])
def Backoffice():
	return render_template('BO_Admin/backoffice.html')


@app.route('/all_users',methods=["GET","POST"])
def AllUsers():
	if session.get('admin',None):
		user_data = BOAdminModel().Get_Users()
		html_data = render_template("BO_Admin/all_users_table.html", user_data= user_data)
		return render_template('BO_Admin/all_users.html',html_data=html_data)
	return redirect(url_for('bo_admin.BOLogin'))

@app.route('/all_payment',methods=["GET","POST"])
def AllPayment():
	if session.get('admin',None):
		payment_data = BOAdminModel().Get_Payment()
		html_data = render_template("BO_Admin/all_payment_table.html", payment_data= payment_data)
		return render_template('BO_Admin/all_payment.html',html_data=html_data)
	return redirect(url_for('bo_admin.BOLogin'))

@app.route('/view_payment/<int:payment_id>',methods = ["GET"])
def ViewPayment(payment_id):
	payment_data = BOAdminModel().View_Payment(payment_id) 
	data = {"view_data" :payment_data ,"status" : 1,"msg" : "success"}
	return json.dumps(data,default=str)


@app.route('/success_payment',methods=["GET","POST"])
def SuccessPayment():
	if session.get('admin',None):
		success_payment_data = BOAdminModel().Get_Success_Payment()
		html_data = render_template("BO_Admin/success_payment_table.html", success_payment_data= success_payment_data)
		return render_template('BO_Admin/success_payment.html',html_data=html_data)
	return redirect(url_for('bo_admin.BOLogin'))


@app.route('/failure_payment',methods=["GET","POST"])
def FailurePayment():
	if session.get('admin',None):
		failed_payment_data = BOAdminModel().Get_Failure_Payment()
		html_data = render_template("BO_Admin/failure_payment_table.html", failed_payment_data= failed_payment_data)
		return render_template('BO_Admin/failure_payment.html',html_data=html_data)
	return redirect(url_for('bo_admin.BOLogin'))


@app.route('/update_payment_status/<int:payment_id>', methods = ["GET","POST"])
def UpdatePaymentStatus(payment_id):
		payment_status     = request.values.get("payment_status")
		data = {'payment_status' :payment_status}
		updated_data  = BOAdminModel().updatePayment(payment_id,data)
		data = {"data" : updated_data,'msg' : "success" , 'status' : 1 }
		return json.dumps(data, default=str)


@app.route('/verified_by_admin_mail/<int:payment_id>',methods = ["GET","POST"])
def Verified_By_Admin_Mail(payment_id):
	now           = datetime.now()
	curr_dt       = now.strftime('%Y-%m-%d %H:%M:%S')
	user_data = BOAdminModel().Get_Users_by_id(payment_id) 
	email = user_data['email']
	if email :
			user_id = user_data["user_id"]
			fixed_digits    = 4
			subject         = "Payment Verification Mail" 
			html            = render_template('BO_Admin/email/verified_by_admin_mail.html',data = user_data)

			payment_id = user_data["payment_id"]
			is_verified_by_admin    = 1
			is_payment_verified_mail_sent = 1
			data_for_update = {'is_verified_by_admin':is_verified_by_admin,'is_payment_verified_mail_sent' : is_payment_verified_mail_sent,'payment_verified_mail_sent_at':[curr_dt]}
			updateVerifiedByAdmin  = BOAdminModel().updatePayment(payment_id,data_for_update)
			# return html
			EMAIL.sendMail(subject,html,email)
			lo = email.find('@')
			if lo>0:
				mask_email =  email[0]+"*****"+email[lo-1:]
			else :
				mask_email = email	

			msg = "Payment Verification Mail has been sent to your registered email-id "+ mask_email + " ." 	
			flash(msg, "successMsg")
			return redirect(url_for('bo_admin.AllPayment'))
	else : 
			return redirect(url_for('bo_admin.BOLogin'))	


@app.route('/success_by_admin_mail/<int:payment_id>',methods = ["GET","POST"])
def Success_By_Admin_Mail(payment_id):
	now           = datetime.now()
	curr_dt       = now.strftime('%Y-%m-%d %H:%M:%S')
	user_data = BOAdminModel().Get_Users_by_id(payment_id) 
	email = user_data['email']
	if email :
			user_id = user_data["user_id"]
			fixed_digits    = 4
			subject         = "Payment Verification Mail" 
			html            = render_template('BO_Admin/email/verified_by_admin_mail.html',data = user_data)
			payment_id = user_data["payment_id"]
			is_verified_by_admin    = 1
			is_payment_verified_mail_sent = 1
			data_for_update = {'is_verified_by_admin':is_verified_by_admin,'is_payment_verified_mail_sent' : is_payment_verified_mail_sent,'payment_verified_mail_sent_at':[curr_dt]}
			updateVerifiedByAdmin  = BOAdminModel().updatePayment(payment_id,data_for_update)

			EMAIL.sendMail(subject,html,email)
			lo = email.find('@')
			if lo>0:
				mask_email =  email[0]+"*****"+email[lo-1:]
			else :
				mask_email = email	

			msg = "Payment Verification Mail has been sent to your registered email-id "+ mask_email + " ." 	
			flash(msg, "successMsg")
			return redirect(url_for('bo_admin.SuccessPayment'))
	else : 
			return redirect(url_for('bo_admin.BOLogin'))	


@app.route('/reject_by_admin_mail/<int:payment_id>',methods = ["GET","POST"])
def Reject_By_Admin_Mail(payment_id):
	now           = datetime.now()
	curr_dt       = now.strftime('%Y-%m-%d %H:%M:%S')
	user_data = BOAdminModel().Get_Users_by_id(payment_id) 
	email = user_data['email']
	if email :
			user_id = user_data["user_id"]
			# enc_user_id = Cryptography.encrypt(user_id)
			
			fixed_digits    = 4
			subject         = "Payment Verification Mail" 
			html            = render_template('BO_Admin/email/verified_by_admin_mail.html',data = user_data)

			payment_id = user_data["payment_id"]
			is_verified_by_admin    = 1
			is_payment_verified_mail_sent = 1
			data_for_update = {'is_verified_by_admin':is_verified_by_admin,'is_payment_verified_mail_sent' : is_payment_verified_mail_sent,'payment_verified_mail_sent_at':[curr_dt]}
			updateVerifiedByAdmin  = BOAdminModel().updatePayment(payment_id,data_for_update)
			# return html
			EMAIL.sendMail(subject,html,email)
			lo = email.find('@')
			if lo>0:
				mask_email =  email[0]+"*****"+email[lo-1:]
			else :
				mask_email = email	

			msg = "Payment Verification Mail has been sent to your registered email-id "+ mask_email + " ." 	
			flash(msg, "successMsg")
			return redirect(url_for('bo_admin.FailurePayment'))
	else : 
			return redirect(url_for('bo_admin.BOLogin'))	



@app.route('/verified_payment',methods=["GET","POST"])
def VerifiedPayment():
	return render_template('BO_Admin/verified_payment.html')


@app.route('/not_verified_payment',methods=["GET","POST"])
def NotVerifiedPayment():
	return render_template('BO_Admin/not_verified_payment.html')


Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists