Added new fields: usernamefield and fix in passwordfield
This commit is contained in:
parent
9cb9978a86
commit
87bc64a673
3 changed files with 38 additions and 3 deletions
|
|
@ -254,6 +254,7 @@ class AjaxList(SimpleList):
|
||||||
self.str_query_params=str_query[1]
|
self.str_query_params=str_query[1]
|
||||||
self.initial_num_pages=20
|
self.initial_num_pages=20
|
||||||
self.db=db
|
self.db=db
|
||||||
|
self.func_fields={}
|
||||||
|
|
||||||
def show(self):
|
def show(self):
|
||||||
|
|
||||||
|
|
@ -293,7 +294,10 @@ class AjaxList(SimpleList):
|
||||||
with self.db.query(self.count_query, self.count_query_params) as cursor:
|
with self.db.query(self.count_query, self.count_query_params) as cursor:
|
||||||
total_elements=cursor.fetchone()['num_elements']
|
total_elements=cursor.fetchone()['num_elements']
|
||||||
|
|
||||||
str_query=self.str_query+' '+order_sql+' limit %s, %s'
|
str_query=self.str_query+' '+order_sql
|
||||||
|
|
||||||
|
if self.limit>0:
|
||||||
|
str_query+=' limit %s, %s'
|
||||||
|
|
||||||
params=self.str_query_params
|
params=self.str_query_params
|
||||||
params.append(begin_page)
|
params.append(begin_page)
|
||||||
|
|
@ -301,7 +305,20 @@ class AjaxList(SimpleList):
|
||||||
|
|
||||||
with self.db.query(str_query, params) as cursor:
|
with self.db.query(str_query, params) as cursor:
|
||||||
for row in cursor:
|
for row in cursor:
|
||||||
|
"""
|
||||||
|
c=len(self.arr_order_fields)
|
||||||
|
for x in range(c, len(row)):
|
||||||
|
key_field=list(row.keys())[x]
|
||||||
|
#print(key_field)
|
||||||
|
pass
|
||||||
|
"""
|
||||||
|
|
||||||
|
for func_field in self.func_fields:
|
||||||
|
if func_field in row:
|
||||||
|
row[func_field]=self.func_fields[func_field](row[func_field])
|
||||||
|
|
||||||
rows.append(row)
|
rows.append(row)
|
||||||
|
#{k:d[k] for in set(d).intersection(l)}
|
||||||
|
|
||||||
pages=Pages()
|
pages=Pages()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ class PasswordField(PhangoField):
|
||||||
self.protected=True
|
self.protected=True
|
||||||
self.name_form=PasswordForm
|
self.name_form=PasswordForm
|
||||||
self.default_value=''
|
self.default_value=''
|
||||||
|
self.encrypt_password=True
|
||||||
|
|
||||||
def check(self, value):
|
def check(self, value):
|
||||||
|
|
||||||
|
|
@ -41,7 +42,8 @@ class PasswordField(PhangoField):
|
||||||
#if crypt.METHOD_SHA512 in crypt.methods:
|
#if crypt.METHOD_SHA512 in crypt.methods:
|
||||||
|
|
||||||
#salt=crypt.mksalt(crypt.METHOD_SHA512)
|
#salt=crypt.mksalt(crypt.METHOD_SHA512)
|
||||||
value=crypt.crypt(value)
|
if self.encrypt_password:
|
||||||
|
value=crypt.crypt(value)
|
||||||
|
|
||||||
"""
|
"""
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
16
paramecio/cromosoma/extrafields/usernamefield.py
Normal file
16
paramecio/cromosoma/extrafields/usernamefield.py
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
from paramecio.cromosoma.corefields import PhangoField
|
||||||
|
from paramecio.cromosoma.coreforms import PasswordForm
|
||||||
|
from hmac import compare_digest as compare_hash
|
||||||
|
import crypt
|
||||||
|
import re
|
||||||
|
|
||||||
|
class UserNameField(PhangoField):
|
||||||
|
|
||||||
|
def check(self, value):
|
||||||
|
|
||||||
|
if not re.match("^[A-Za-z0-9_-]+$", value):
|
||||||
|
self.txt_error='Error: use only letters, numbers, underscores and dashes for this field'
|
||||||
|
self.error=1
|
||||||
|
value=''
|
||||||
|
|
||||||
|
return value
|
||||||
Loading…
Add table
Add a link
Reference in a new issue