def register(): getpostfiles=GetPostFiles() connection=WebModel.connection() user_admin=UserAdmin(connection) user_admin.conditions=['WHERE privileges=%s', [2]] c=user_admin.select_count() if c==0: getpostfiles.obtain_post() getpostfiles.post['privileges']=2 user_admin.valid_fields=['username', 'email', 'password', 'privileges'] user_admin.create_forms() if user_admin.insert(getpostfiles.post, False): error= {'error': 0} return error else: user_admin.check_all_fields(getpostfiles.post, False) pass_values_to_form(getpostfiles.post, user_admin.forms, yes_error=True) s=get_session() s['csrf_token']=create_key_encrypt() error={'error': 1, 'csrf_token': s['csrf_token']} for field in user_admin.valid_fields: error[field]=user_admin.forms[field].txt_error error['repeat_password']=user_admin.forms['repeat_password'].txt_error #error['password_repeat']=I18n.lang('common', 'password_no_match', 'Passwords doesn\'t match') s.save() return error else: return {'error': 1}
def send_password(): connection=WebModel.connection() user_admin=UserAdmin(connection) t=PTemplate(env) getpost=GetPostFiles() getpost.obtain_post() email=getpost.post.get('email', '') email=user_admin.fields['email'].check(email) if user_admin.fields['email'].error: s=get_session() s['csrf_token']=create_key_encrypt() s.save() return {'email': user_admin.fields['email'].txt_error, 'error': 1, 'csrf_token': s['csrf_token']} else: user_admin.set_conditions('WHERE email=%s', [email]) user_admin.yes_reset_conditions=False if user_admin.select_count()==1: user_admin.reset_require() user_admin.valid_fields=['token_recovery'] user_admin.check_user=False token=create_key_encrypt_256() if user_admin.update({'token_recovery': token}): send_mail=SendMail() content_mail=t.load_template('admin/recovery_mail.phtml', token=token) if not send_mail.send(email_address, [email], I18n.lang('admin', 'send_email', 'Email for recovery your password'), content_mail): return {'email': 'Error: i cannot send mail', 'error': 1} return {'email': '', 'error': 0}
def home(module='', submodule=''): # A simple boolean used for show or not the code of admin module in standard template connection=WebModel.connection() #Fix, make local variable t=PTemplate(env) t.add_filter(make_admin_url) t.show_basic_template=True if submodule!='': module+='/'+submodule #t.clean_header_cache() #check if login user_admin=UserAdmin(connection) s=get_session() if check_login(): s['id']=s.get('id', 0) lang_selected=get_language(s) user_admin.set_conditions('WHERE id=%s', [s['id']]) # Check if user id exists in session c=user_admin.select_count() if c>0: if s['privileges']==2: #pass if module in menu: #Load module try: #new_module=import_module(menu[module][1]) #t.inject_folder=path.dirname(new_module.__file__).replace('/admin', '') #t.env=t.env_theme(path.dirname(__file__)) t.env.directories.insert(1, path.dirname(module_imported[module].__file__).replace('/admin', '')+'/templates') #print(t.env.directories) #if config.reloader: #reload(new_module) except ImportError: print("Exception in user code:") print("-"*60) traceback.print_exc(file=sys.stdout) print("-"*60) return "No exists admin module" #args={'t': t, 'connection': connection} content_index=module_imported[module].admin(t=t, connection=connection) if t.show_basic_template==True: return t.load_template('admin/content.html', title=menu[module][0], content_index=content_index, menu=menu, lang_selected=lang_selected, arr_i18n=I18n.dict_i18n) else: return content_index else: return t.load_template('admin/index.html', title=I18n.lang('admin', 'welcome_to_paramecio', 'Welcome to Paramecio Admin!!!'), menu=menu, lang_selected=lang_selected, arr_i18n=I18n.dict_i18n) else: logout() else: user_admin.conditions=['WHERE privileges=%s', [2]] c=user_admin.select_count() if c>0: if request.get_cookie("remember_login", secret=key_encrypt): #check login token_login=request.get_cookie("remember_login", secret=key_encrypt) user_admin.conditions=['WHERE token_login=%s', [token_login]] arr_user=user_admin.select_a_row_where(['id', 'privileges']) if arr_user==False: # delete cookioe response.delete_cookie("remember_login") else: s=get_session() s['id']=arr_user['id'] s['login']=1 s['privileges']=arr_user['privileges'] s.save() redirect(make_url(config.admin_folder)) else: post={} user_admin.yes_repeat_password=False user_admin.fields['password'].required=True user_admin.create_forms(['username', 'password']) forms=show_form(post, user_admin.forms, t, yes_error=False) #connection.close() return t.load_template('admin/login.phtml', forms=forms, yes_recovery_login=yes_recovery_login) else: post={} set_extra_forms_user(user_admin) forms=show_form(post, user_admin.forms, t, yes_error=False) return t.load_template('admin/register.phtml', forms=forms)