Little fixes in forms and added function for generate tokens

This commit is contained in:
Antonio de la Rosa 2017-02-21 15:34:16 +01:00
parent 89f60cc084
commit 0e9fd35db6
4 changed files with 44 additions and 15 deletions

View file

@ -99,6 +99,8 @@ class GetPostFiles:
del s['csrf_token'] del s['csrf_token']
s.save()
else: else:
raise NameError('Error: you don\'t send any valid csrf_token') raise NameError('Error: you don\'t send any valid csrf_token')

View file

@ -61,7 +61,7 @@ def env_theme(module, cache_enabled=True, cache_impl='', cache_args={}, module_d
#Standard templates #Standard templates
#print(standard_templates) #print(standard_templates)
return TemplateLookup(directories=search_folders, default_filters=['h'], input_encoding='utf-8', encoding_errors='replace', cache_enabled=cache_enabled, cache_impl=cache_impl, cache_args=cache_args, module_directory=module_directory) return TemplateLookup(directories=search_folders, default_filters=['h'], input_encoding='utf-8', encoding_errors='replace', cache_enabled=cache_enabled, cache_impl=cache_impl, cache_args=cache_args, module_directory=module_directory, filesystem_checks=config.debug)
def preload_templates(template_files, env): def preload_templates(template_files, env):

View file

@ -70,7 +70,7 @@ def show_form(post, arr_form, t, yes_error=True, pass_values=True, modelform_tpl
if pass_values==True: if pass_values==True:
pass_values_to_form(post, arr_form, yes_error) pass_values_to_form(post, arr_form, yes_error)
return t.render_template(modelform_tpl, forms=arr_form) return t.load_template(modelform_tpl, forms=arr_form)
#Simple Function for add repeat_password form to user model #Simple Function for add repeat_password form to user model
@ -92,13 +92,23 @@ def set_extra_forms_user(user_admin):
def ini_fields(fields): def ini_fields(fields):
pass pass
def csrf_token(): def csrf_token(token_id='csrf_token'):
s=get_session()
if not 'csrf_token' in s:
s['csrf_token']=create_key_encrypt()
s.save()
return '<input type="hidden" name="csrf_token" class="csrf_token" id="'+token_id+'" value="'+s['csrf_token']+'" />'
def generate_csrf():
s=get_session() s=get_session()
s['csrf_token']=create_key_encrypt() s['csrf_token']=create_key_encrypt()
s.save() s.save()
return '<input type="hidden" name="csrf_token" id="csrf_token" value="'+s['csrf_token']+'" />' return s['csrf_token']
def request_type(): def request_type():

View file

@ -351,7 +351,7 @@ class WebModel:
self.fields[field_model.name].model=self self.fields[field_model.name].model=self
#self.fields[field_model.name].required=required self.fields[field_model.name].required=required
self.fields[field_model.name].post_register() self.fields[field_model.name].post_register()
@ -1121,6 +1121,23 @@ class WebModel:
return error_txt return error_txt
def collect_errors(self):
arr_error= {}
error_txt=''
for field_error, k_error in self.fields_errors.items():
for error in k_error:
arr_error[field_error]=error
"""
for type_error in self.errors.values():
for error in type_error:
arr_error[field_error]=error
"""
return arr_error
def close(self): def close(self):
self.sqlclass.close() self.sqlclass.close()