Sindbad~EG File Manager

Current Path : /home/numerotech/admin.numerotech.com/admin_app_v1/core/controller/
Upload File :
Current File : //home/numerotech/admin.numerotech.com/admin_app_v1/core/controller/DashboardController.py

from flask import request, Blueprint, jsonify, redirect, url_for,flash, render_template,session,json,render_template_string,Response
from core.model.MemAppModel import MemAppModel
from core.model.AbstractAdminModel import AbstractAdminModel
from .. import Cryptography,Helper,Auth,RouteGroup
from datetime import timedelta,date,datetime,time
import os,sys
from flask import make_response 
from os.path import join, dirname, realpath
import ast
from collections import defaultdict
import math
from core import app
from core.library.helper import Helper
from core.library.email import EMAIL
import boto3, botocore
from PIL import Image
import io

app = Blueprint('dashboard', __name__)

@app.route('/', methods = ["GET", "POST"])
def Home_index():
	host = request.host
	return redirect(url_for("dashboard.AdminPanelLogin"))
	
@app.route('/admin_panel_login', methods = ["GET","POST"])
def AdminPanelLogin():
	return render_template('admin_panel_login.html')


@app.route('/post_admin_panel_login', methods = ["GET","POST"])
def PostAdminPanelLogin():
	if request.method == "POST":
		now = datetime.now()
		current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
		email_id     = request.form['email']
# 		password     = request.form['password']
		userData = MemAppModel().check_admin_email(email_id)
		#print(userData)
# 		if password == "admin@123":
# 			pass
# 		else:
# 			flash('Invalid Password')
# 			return redirect (url_for('dashboard.AdminPanelLogin'))

		if userData is not None:
			Auth.login(userData)
			return redirect (url_for('dashboard.Societies'))
		else:
			flash('Access Denied')
			return redirect (url_for('dashboard.AdminPanelLogin'))

@app.route('/admin_panel_logout', methods = ["GET","POST"])
def AdminPanelLogout():
	return redirect (url_for('dashboard.AdminPanelLogin'))

@app.route('/societies', methods = ["GET","POST"])
def Societies():
	userdata = Auth.user()
	if userdata:
		societies = MemAppModel().get_societies()
		get_m_app = MemAppModel().GetM_App_Data()
		conf      = MemAppModel().Get_Conf()
		return render_template('dashboard_templates/society_index.html',data=societies,conf=conf,get_m_app=get_m_app)
	else: 
		return redirect(url_for("dashboard.AdminPanelLogin"))

@app.route('/post_society_index', methods = ["GET","POST"])
def PostSocietyIndex():
	society_id   = request.form['society_id']
	society_name = request.form['society_name']
	society_data = MemAppModel().get_society_app(society_id)
	get_conf     = MemAppModel().GetConf(society_id)
	get_m_app    = MemAppModel().GetM_App_Data()
	html_data    = render_template('dashboard_templates/get_society_data.html',society_data=society_data,society_id=society_id,society_name=society_name,get_m_app=get_m_app,get_conf=get_conf)
	datas = {"status" : 1,"html_data":html_data}
	json_data = json.dumps(datas,default=str)
	return json_data


@app.route('/<conf_id>/<society_id>/abstract_redirect')
def AbstractAutoLogin(conf_id,society_id):
	return redirect(url_for('abstract_admin.AbstractAdmin',conf_id=conf_id,society_id=society_id))

@app.route('/<app_type_id>/<society_id>/profile_redirect')
def ProfileRedirect(app_type_id,society_id):
	app_data = MemAppModel().get_profile_application_by_app_id(app_type_id,society_id)
	if app_data:
		app_id = app_data['app_id']
		return redirect(url_for('profile.EditProfileInfo',app_id=app_id))
	else :
		flash("There is no Profile Update App for this society. Please click the button 'Add Profile App' to create App" ,"errorMsg")
		return redirect(url_for('profile.GetProfileApp'))


@app.route('/active_conf_submission_daily_report_v1',methods=["GET","POST"])
def common_submission_daily_report():
	send_now    = request.values.get('send_now') or 0
	is_view     = request.values.get("is_view") or 0
	current_tm  = datetime.now()
#   return current_tm.hour
	# return SendDailySubmissionCountMail(society_id,is_view)
	if int(is_view) == 1 or int(send_now) == 1:
#       print("is_view ",is_view)
#       print("send_now ",send_now)
		return AllActiveConferenceDetails()
	elif (current_tm.hour == 5 and current_tm.minute > 45) or (current_tm.hour == 6 and current_tm.minute < 15):
#       print("Is 6 clock")
		# print(str(current_tm.strftime('%d-%m-%Y %H:%M:%S'))+" Time match")
		# call function here
		return AllActiveConferenceDetails()
	else:
		# print(str(current_tm.strftime('%d-%m-%Y %H:%M:%S'))+" Time not match ")
#       return AllActiveConferenceDetails()
		return ( str(current_tm.strftime('%d-%m-%Y %H:%M:%S'))+" Time not match ")



@app.route('/all_active_conference_details')
def AllActiveConferenceDetails():
	now                 =datetime.now()
#   print(now)
	current_dt          =now.strftime("%d-%b-%Y %I:%M %p")
	yesterday = date.today() - timedelta(days = 1)
#   print(yesterday)
	users          = AbstractAdminModel().get_trigger_report_emails_data()
	conference_data = AbstractAdminModel().GetAllActiveConferenceData()
	count_data      = defaultdict(list) # sub list with key
	active_conf_count=[]
	total_count=[]
	for r in conference_data[0]:
		count_data[r["conf_id"]].append(r)
		if r["conf_id"] not in total_count:
			total_count.append(r["conf_id"])
		active_conf_count.append(r['app_name'])
	my_dict = {i:active_conf_count.count(i) for i in active_conf_count}
	tota_active_conf=len(total_count)
	# print(tota_active_conf)
	if users:
		# Auth.active_mail_report(users[0])
		for i in users:
			email=i["email"]
#           print("email ", email)
			subject='Active Conference List '+str(current_dt)
#           print(subject)
			html= render_template('dashboard_templates/active_conference_list_mail.html',conference_data=conference_data,active_conf_count=active_conf_count,count_data=count_data,my_dict=my_dict,tota_active_conf=tota_active_conf,current_dt=current_dt,yesterday=yesterday,datetime=datetime)
#           return html
			EMAIL.common_sendMail_daily_report(subject,html,email)
	return "mail sent successful"
	
@app.route('/logs')
def Logs():
	get_logs=AbstractAdminModel().GetLogsData()
	return render_template('dashboard_templates/log_page.html',get_logs=get_logs)

@app.route('/search_logs',methods=['POST'])
def SearchLogs():
	app_type= request.values.get('app_type') or None
	logger_name=request.values.get('logger_name') or None
	host_url=request.values.get('host_url')or None
	before_time=request.values.get('before_time') or None
	limit=request.values.get('limit') or 10

	data={
	'app_type':app_type,
	'logger_name':logger_name,
	'host_url':host_url,
	'before_time':before_time,
	'limit':limit
	}
	
	filter_logs=AbstractAdminModel().usp_filter_logs(app_type,logger_name,host_url,before_time,limit)
	# print(filter_logs)
	html_data=render_template('dashboard_templates/error_logs_table.html',filter_logs=filter_logs)
	datas = {"status" : 1,"html_data":html_data,"msg":"success"}
	json_data = json.dumps(datas,default=str)
	return json_data
	
#------- Find/Search User ------------------
@app.route('/find_user',methods=['GET'])
def FindUser():
	userdata = Auth.user()
	if userdata:
		return render_template('dashboard_templates/find_user.html')
	else:
		return redirect(url_for("dashboard.AdminPanelLogin"))

@app.route('/get_user_data',methods=['POST'])
def get_user_data():
	search_text = request.values.get('search_txt') or None
	if search_text:
		length = len(search_text)
	else:
		length = 0

	searched_data = AbstractAdminModel().get_searched_data(search_text)
	if searched_data:
		count = len(searched_data)
	else:
		count = 0
	if (length>=3):
		html_data = render_template('dashboard_templates/get_search_data_table.html',data=searched_data,count=count)
		data      = {"html_data" :html_data,"msg" : "success" ,"status" : 1 }
		json_data = json.dumps(data,default = str)
		return json_data
	else:
		data      = {"html_data" :"","msg" : "fail" ,"status" : 2 }
		json_data = json.dumps(data,default = str)
		return json_data
		
@app.route('/view_user/<user_id>/<society_id>',methods=['GET','POST'])
def ViewUser(user_id,society_id):
	data = AbstractAdminModel().get_user_data(user_id)
	conference = AbstractAdminModel().GetConferenceBySociety(society_id)
	conf_id = None
	return render_template('dashboard_templates/view_user.html',data=data,conference=conference,conf_id=conf_id)

@app.route('/get_user_abstract_details/<user_id>/<conf_id>',methods=['GET','POST'])
def GetUserAbstract(user_id,conf_id):
#   print("user_id>>>>>",user_id)
	# conf_id = int(request.values.get('conf_id'))
#   print("conf_id>>>",conf_id)
	conf_key = AbstractAdminModel().get_conf_key_by_id(conf_id)
	conf_key = conf_key['conf_key']
	results = AbstractAdminModel().usp_get_abstracts(conf_id,user_id,None,None)
	for index,value in enumerate(results) :
		if index == 0 :
			db_abstract = value
		if index == 1 :
			db_abstopic = value
		if index == 2 :
			user_profile  = value[0]
		if index == 3 :
			db_judges  = value
		if index == 4 :
			db_eva_data = value
			
	commitmentData = AbstractAdminModel().get_user_commitment_data(conf_id,user_id,None,None,None)
	
	if commitmentData:
		commitment_data  = commitmentData[1]
	else:
		commitment_data = None

	abstopics_lst = {} 
	if db_abstopic:     
		for abstopic in db_abstopic:
			abstopics_lst[abstopic['abs_id']] = (abstopics_lst[abstopic['abs_id']] if abstopics_lst.get(abstopic['abs_id'],None) else [] ) +  [abstopic]    
	
	abstopic = []
	if db_abstract:
		for absData in db_abstract:
			absData['topics'] = abstopics_lst.get(absData['abs_id'],[])
			abstopic.append(absData)
	html_data = render_template('dashboard_templates/user_abstracts_detail.html',conf_id=conf_id,conf_key=conf_key,userData=user_profile,absDatas=abstopic,db_judges=db_judges,user_id=user_id,commitment_data=commitment_data,db_eva_data=db_eva_data)
	data      = {"html_data" :html_data,"msg" : "success" ,"status" : 1 }
	json_data = json.dumps(data,default = str)
	return json_data
	
@app.route('/generate_sqllite',methods=['GET','POST'])
def GetGenerateSqllite():
	userdata = Auth.user()
	if userdata:
		return render_template('dashboard_templates/generate_sqllite.html')
	else: 
		return redirect(url_for("dashboard.AdminPanelLogin"))

@app.route('/<int:conf_id>/edit_conference_data',  methods = ["GET", "POST"])
def EditConferenceData(conf_id):
	get_conf = AbstractAdminModel().GetConf(conf_id)
	if get_conf :
		return render_template('dashboard_templates/conference_edit_index.html',conf_data=get_conf,conf_id=conf_id)
	else:   
		return "<h1>Invalid URL </h1>"


@app.route('/<int:conf_id>/conference_prefix',methods=["GET","POST"])
def ConferencePrefix(conf_id):
	now               = datetime.now()
	current_dt        = now.strftime("%Y-%m-%d %H:%M:%S")
	formatted_time    = now.strftime("%Y%m%d%H%M%S%f")[:-3]
	try:
		conf_name              = request.form.get('conf_name') or None
		conf_title             = request.form.get('conf_title')or None
		conf_key               = request.form.get('conf_key') or None
		conf_schema            = request.form.get('conf_schema')or None
		conf_name_full_form    = request.form.get('conf_name_full_form') or None
		header_text            = request.form.get('header_text',None) or None
		abs_header_text        = request.form.get('abs_header_text', None ) or None
		is_active              = request.form.get('is_active') or None
		update_data            = {'conf_name':conf_name,'conf_title':conf_title,'conf_key':conf_key,'conf_schema':conf_schema,'conf_name_full_form':conf_name_full_form,'header_text':header_text,'abs_header_text':abs_header_text,'is_active':is_active}
		update_conf_data       = AbstractAdminModel().update_conf(conf_id,update_data)
		if update_conf_data == 'success':
			datas = {"msg":"Updated Successfully","status" : 1}
		else:
			datas = {"msg":"","status" : 2}
		return  json.dumps(datas,default=str)
	except Exception as e:
		data      = {"msg": str(e),"status":400}        
		return json.dumps(data,default = str)




@app.route('/<int:conf_id>/conference_media',methods=["GET","POST"])
def ConferenceMedia(conf_id):
	now               = datetime.now()
	current_dt        = now.strftime("%Y-%m-%d %H:%M:%S")
	try:
		mail_header_logo       = request.values.get('mail_header_logo') or None
		header_logo            = request.values.get('header_logo')or None
		
		update_data       = {'mail_header_logo':mail_header_logo,'header_logo':header_logo}
		update_conf_data  = AbstractAdminModel().update_conf(conf_id,update_data)
		if update_conf_data == 'success':
			datas = {"update_data":update_data,"msg":"success","status" : 1}
		else:
			datas = {"update_data":'',"msg":"success","status" : 2}
		return  json.dumps(datas,default=str)
		
	except Exception as e:
		data      = {"update_data":"","msg": str(e),"status":400}        
		return json.dumps(data,default = str)

@app.route('/<int:conf_id>/conference_contents',methods=["GET","POST"])
def ConferenceContents(conf_id):
	now               = datetime.now()
	current_dt        = now.strftime("%Y-%m-%d %H:%M:%S")
	try:
		index_content       = request.values.get('index_content') or None
		tariff_url          = request.values.get('tariff_url')or None       
		update_data       = {'index_content':index_content,'tariff_url':tariff_url}
		update_conf_data  = AbstractAdminModel().update_conf(conf_id,update_data)
		if update_conf_data == 'success':
			datas = {"msg":"Updated Successfully","status" : 1}
		else:
			datas = {"msg":"","status" : 2}
		return  json.dumps(datas,default=str)
		
	except Exception as e:
		data      = {"update_data":"","msg": str(e),"status":400}        
		return json.dumps(data,default = str)


@app.route('/<int:conf_id>/conference_emails',methods=["GET","POST"])
def ConferenceEmails(conf_id):
	now               = datetime.now()
	current_dt        = now.strftime("%Y-%m-%d %H:%M:%S")
	try:
		support_email       = request.form.get('support_email') or None
		backup_email        = request.form.get('backup_email')or None
		acc_support_mail    = request.form.get('acc_support_mail') or None
		from_email          = request.form.get('from_email')or None
		reply_to            = request.form.get('reply_to') or None
		is_email_enable     = request.form.get('is_email_enable')or None
		e_support_email     = request.form.get('e_support_email') or None
		e_backup_emails     = request.form.get('e_backup_emails')or None
		e_from_email        = request.form.get('e_from_email') or None
		e_reply_name        = request.form.get('e_reply_name')or None
		e_reply_to          = request.form.get('e_reply_to') or None

		
		update_data         = {
			'support_email':support_email,
			'backup_email':backup_email,
			'acc_support_mail':acc_support_mail,
			'from_email':from_email,
			'reply_to':reply_to,
			'is_email_enable':is_email_enable,
			'e_support_email':e_support_email,
			'e_backup_emails':e_backup_emails,
			'e_from_email':e_from_email,
			'e_reply_name':e_reply_name,
			'e_reply_to':e_reply_to
		}
		update_conf_data  = AbstractAdminModel().update_conf(conf_id,update_data)
		if update_conf_data == 'success':
			datas = {"msg":"Updated Successfully","status" : 1}
		else:
			datas = {"msg":"","status" : 2}
		return  json.dumps(datas,default=str)
		
	except Exception as e:
		data      = {"update_data":"","msg": str(e),"status":400}        
		return json.dumps(data,default = str)



@app.route('/<int:conf_id>/conference_setting',methods=["GET","POST"])
def ConferenceSetting(conf_id):
	now               = datetime.now()
	current_dt        = now.strftime("%Y-%m-%d %H:%M:%S")
	try:
		conf_start_time     = request.form.get('conf_start_time') or None
		conf_end_time       = request.form.get('conf_end_time') or None
		conf_start_dt               = request.form.get('conf_start_dt') or None
		conf_end_dt                 = request.form.get('conf_end_dt')or None
		abs_ses_table_name          = request.form.get('abs_ses_table_name') or None
		abs_ses_query_table_name    = request.form.get('abs_ses_query_table_name')or None
		scientific_support_team     = request.form.get('scientific_support_team') or None
		hall_scan_is_exit           = request.form.get('hall_scan_is_exit')or None
		food_logo                   = request.form.get('food_logo') or None
		kit_logo                    = request.form.get('kit_logo')or None
		set_count_of_per_counter    = request.form.get('set_count_of_per_counter') or None
		badge_count_of_per_set      = request.form.get('badge_count_of_per_set') or None

		

		update_data       = {
		'conf_start_time':conf_start_time,
		'conf_end_time':conf_end_time,
		'conf_start_dt':conf_start_dt,
		'conf_end_dt':conf_end_dt,
		'abs_ses_table_name':abs_ses_table_name,
		'abs_ses_query_table_name':abs_ses_query_table_name,
		'scientific_support_team':scientific_support_team,
		'hall_scan_is_exit':hall_scan_is_exit,
		'food_logo':food_logo,
		'kit_logo':kit_logo,
		'set_count_of_per_counter':set_count_of_per_counter,
		'badge_count_of_per_set':badge_count_of_per_set

		}

		update_conf_data  = AbstractAdminModel().update_conf(conf_id,update_data)
		if update_conf_data == 'success':
			datas = {"msg":"Updated Successfully","status" : 1}
		else:
			datas = {"msg":"","status" : 2}
		return  json.dumps(datas,default=str)
	except Exception as e:
		data      = {"msg": str(e),"status":400}        
		return json.dumps(data,default = str)

@app.route('/<int:conf_id>/additional_settings',methods=["GET","POST"])
def AdditionalSettings(conf_id):
	now               = datetime.now()
	current_dt        = now.strftime("%Y-%m-%d %H:%M:%S")
	try:
		reg_start_on               = request.form.get('reg_start_on') or None
		reg_end_on                 = request.form.get('reg_end_on') or None
		default_country_id         = request.form.get('default_country_id')or None
		is_requried_fields         = request.form.get('is_requried_fields') or None
		del_table_name             = request.form.get('del_table_name')or None
		is_regdesk_open            = request.form.get('is_regdesk_open') or None
		pg_details                 = request.form.get('pg_details')or None
		system_wise_scan           = request.form.get('system_wise_scan') or None
		addons_member_list         = request.form.get('addons_member_list')or None
		dashboard_box_content      = request.form.get('dashboard_box_content') or None

		
		update_data  = {
						'reg_start_on':reg_start_on,
						'reg_end_on':reg_end_on,
						'default_country_id':default_country_id,
						'is_requried_fields':is_requried_fields,
						'del_table_name':del_table_name,
						'is_regdesk_open':is_regdesk_open,
						'pg_details':pg_details,
						'system_wise_scan':system_wise_scan,
						'addons_member_list':addons_member_list,
						'dashboard_box_content':dashboard_box_content
								
							}

		update_conf_data  = AbstractAdminModel().update_conf(conf_id,update_data)
		if update_conf_data == 'success':
			datas = {"msg":"Updated Successfully","status" : 1}
		else:
			datas = {"msg":"","status" : 2}
		return  json.dumps(datas,default=str)
		
	except Exception as e:
		data      = {"msg": str(e),"status":400}        
		return json.dumps(data,default = str)


@app.route('/<int:conf_id>/favicon_upload_fun',methods=["GET","POST"])
def FaviconUploadFun(conf_id):
	now               = datetime.now()
	current_dt        = now.strftime("%Y-%m-%d %H:%M:%S")
	formatted_time    = now.strftime("%Y%m%d%H%M%S%f")[:-3]
	try:		
		file_name     = request.form.get('fileName') or None
		file          = request.files.get('file_favicon') or None
		print("file_name--",file_name,file)

		if file:
			print(file_name,file)
			# Create an S3 client
			s3 = boto3.client("s3", aws_access_key_id='AKIAILLDAQ7NFUMVOYLQ', 
						aws_secret_access_key='EEudWCsWeCIt/J9/z5m5htmUdGFJNzWFPvNQBIp/')
			bucket = 'aws-s3store'
			acl = "public-read"
			# file_name = f"{file_name.replace(' ', '_').rsplit('.', 1)[0]}_{formatted_time}.{file_name.rsplit('.', 1)[1]}"
			# Prepare the ICO file name

			file_name = f"{os.path.splitext(file.filename)[0].replace(' ', '_').rsplit('.', 1)[0]}_{formatted_time}.ico"

			foldername = 'favicon_1/'
			file_path = f"{foldername}{file_name}"

			# Open and resize the image, then save it to a bytes buffer
			with Image.open(file) as img:
				img = img.resize((48, 48))  # Resize to 48x48
				img_byte_arr = io.BytesIO()
				img.save(img_byte_arr, format='ICO')
				img_byte_arr.seek(0)  # Move to the beginning of the BytesIO object

			# Upload to S3
			response = s3.upload_fileobj(
				img_byte_arr,
				bucket,
				file_path,
				ExtraArgs={"ACL": acl, "ContentType": 'image/x-icon'}  # Set content type for ICO
			)
			 # Generate the file URL
			file_url = f"https://{bucket}.s3.ap-southeast-1.amazonaws.com/{file_path}"

		update_data       = {'favicon_url':file_url}
		update_conf_data  = AbstractAdminModel().update_conf(conf_id,update_data)
		if update_conf_data == 'success':
			datas = {"update_data":update_data,"msg":"Updated successfully","status" : 1}
		else:
			datas = {"update_data":'',"msg":"success","status" : 2}
		return  json.dumps(datas,default=str)
		

	except Exception as e:
		data      = {"update_data":"","msg": str(e),"status":400}        
		return json.dumps(data,default = str)

@app.route('/<int:conf_id>/remove_favicon',methods=["GET","POST"])
def RemoveFavicon(conf_id):
	now               = datetime.now()
	current_dt        = now.strftime("%Y-%m-%d %H:%M:%S")
	try:
		url          = request.values.get('image_favicon') or None
		file_name    = url.split('/')[-1]
		acl          = "public-read"
		s3           = boto3.resource("s3", aws_access_key_id='AKIAILLDAQ7NFUMVOYLQ', aws_secret_access_key='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')
		bucket       = 'aws-s3store'
		foldername   = 'favicon_1'
		path         = f"{foldername}/{file_name}"

		try:
			response = s3.Object(bucket, path).delete()
			print("Object deleted successfully")
		except Exception as e:
			print(f"An error occurred: {str(e)}")

		remove_favicon  = AbstractAdminModel().remove_favicon_data(conf_id)

		if remove_favicon == 'success':
			datas = {"msg":"deleted successfully","status" : 1}
		else:
			datas = {"msg":"","status" : 2}
		return  json.dumps(datas,default=str)
		
	except Exception as e:
		data      = {"msg": str(e),"status":400}        
		return json.dumps(data,default = str)



@app.route('/get_conf_data_by_society_id',methods=["GET","POST"])
def GetConfDataBySocietyId():
	try:
		society_id   = request.values.get('society_id') or None
		conf_data_by_society  = AbstractAdminModel().get_conf_data_by_society_id(society_id)

		if conf_data_by_society :
			datas = {"conf_data_by_society":conf_data_by_society,"msg":"success","status" : 1}
		else:
			datas = {"conf_data_by_society":"","msg":"","status" : 2}
		return  json.dumps(datas,default=str)
		
	except Exception as e:
		data      = {"conf_data_by_society":"","msg": str(e),"status":400}        
		return json.dumps(data,default = str)


@app.route('/create_duplicate_conf',methods=["GET","POST"])
def CreateDuplicateConf():
	try:
		conf_id      = request.values.get('conf_id') or None
		society_id   = request.values.get('society_id') or None

		conf_data    = AbstractAdminModel().create_duplicate_conf(conf_id,society_id)
		last_insert_id = conf_data[0]['last_insert_id']

		if last_insert_id :
			datas = {"last_insert_id":last_insert_id,"msg":"success","status" : 1}
		else:
			datas = {"last_insert_id":"","msg":"success","status" : 2}
		return  json.dumps(datas,default=str)
		
	except Exception as e:
		data      = {"last_insert_id":"","msg": str(e),"status":400}        
		return json.dumps(data,default = str)
		
@app.route('/do/insert_new_user_data_by_society_id/<society_id>', methods = ["GET", "POST"])
def insert_new_user_data_by_society_id(society_id):
	userdata = Auth.user()
	super_admin_email = userdata['admin_email']
	userdata = Auth.user()
	if userdata and userdata['admin_email']:
		insert_data = AbstractAdminModel().insert_new_user_data_by_society_id(super_admin_email,society_id) #add new user by society
		# get_user_uuid = AdminAccessModel().get_user_uuid(super_admin_email,society_id)
		user_uuid = insert_data['user_uuid']
		data_1 = {"user_uuid":user_uuid,"status" : 1 , "msg" : "Updated Successfully"}
	else:
		data_1 = {"user_uuid":"","status" : 2 , "msg" : "Updated Failed"}

	return json.dumps(data_1 ,default=str)


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