Compare commits

...
12 Commits
Author SHA1 Message Date
mdipierro 13c78fae58 R-2.6.3 2013-09-15 12:00:13 -05:00
mdipierro 91c0a31800 R-2.6.3 2013-09-15 11:51:01 -05:00
mdipierro 277137c8e6 R-2.6.3 2013-09-15 11:48:32 -05:00
mdipierro 4556a355a2 fixed a problem with CRYPT password length 2013-09-15 11:46:46 -05:00
mdipierro 7dafb07438 added a extra level of protection for long passwords, even if IS_LENGTH validator is missing 2013-09-15 09:40:15 -05:00
mdipierro b0f6dc4e16 R-2.6.2 2013-09-13 17:44:01 -05:00
mdipierro 1499b19575 R-2.6.2 2013-09-13 17:41:13 -05:00
mdipierro 877b867cef Merge pull request #212 from niphlod/fix/js_punctuation
never got to understand ASI. Let's behave and have a semicolon.
2013-09-13 15:27:46 -07:00
niphlod 837808bd77 never got to understand ASI. Let's behave and have a semicolon. 2013-09-14 00:22:53 +02:00
mdipierro 10a69f4338 removed circular import for validators 2013-09-13 17:14:47 -05:00
mdipierro 7bc603f380 fixed Pointless to set session.flash before session.renew, thanks nursix 2013-09-13 15:41:58 -05:00
mdipierro 6c1cc6fc96 tabs -> spaces 2013-09-13 15:39:39 -05:00
35 changed files with 151 additions and 148 deletions
+1 -1
View File
@@ -30,7 +30,7 @@ update:
echo "remember that pymysql was tweaked" echo "remember that pymysql was tweaked"
src: src:
### Use semantic versioning ### Use semantic versioning
echo 'Version 2.6.1-stable+timestamp.'`date +%Y.%m.%d.%H.%M.%S` > VERSION echo 'Version 2.6.3-stable+timestamp.'`date +%Y.%m.%d.%H.%M.%S` > VERSION
### rm -f all junk files ### rm -f all junk files
make clean make clean
### clean up baisc apps ### clean up baisc apps
+1 -1
View File
@@ -1 +1 @@
Version 2.6.1-stable+timestamp.2013.09.12.17.08.08 Version 2.6.3-stable+timestamp.2013.09.15.11.59.21
-1
View File
@@ -234,4 +234,3 @@ def list_breakpoints():
session.flash = str(e) session.flash = str(e)
ok = False ok = False
return response.json({'ok': ok, 'breakpoints': breakpoints}) return response.json({'ok': ok, 'breakpoints': breakpoints})
+2 -2
View File
@@ -108,7 +108,7 @@ def index():
if session.authorized: if session.authorized:
redirect(send) redirect(send)
elif request.vars.password: elif request.vars.password:
if verify_password(request.vars.password): if verify_password(request.vars.password[:1024]):
session.authorized = True session.authorized = True
login_record(True) login_record(True)
@@ -583,7 +583,7 @@ def edit():
# show settings tab and save prefernces # show settings tab and save prefernces
if 'settings' in request.vars: if 'settings' in request.vars:
if request.post_vars: #save new preferences if request.post_vars: #save new preferences
if config.save(request.post_vars.items()): if config.save(request.post_vars.items()):
response.headers["web2py-component-flash"] = T('Preferences saved correctly') response.headers["web2py-component-flash"] = T('Preferences saved correctly')
else: else:
+1 -1
View File
@@ -49,7 +49,7 @@ def verify_password(password):
session.pam_user = None session.pam_user = None
if DEMO_MODE: if DEMO_MODE:
return True return True
elif not 'password' in _config: elif not _config.get('password'):
return False return False
elif _config['password'].startswith('pam_user:'): elif _config['password'].startswith('pam_user:'):
session.pam_user = _config['password'][9:].strip() session.pam_user = _config['password'][9:].strip()
+6
View File
@@ -0,0 +1,6 @@
[DEFAULT]
theme = web2py
[editor]
theme = night
+2 -2
View File
@@ -179,7 +179,7 @@
}); });
var datetime_format = (typeof w2p_ajax_datetime_format != 'undefined') ? w2p_ajax_datetime_format : "%Y-%m-%d %H:%M:%S"; var datetime_format = (typeof w2p_ajax_datetime_format != 'undefined') ? w2p_ajax_datetime_format : "%Y-%m-%d %H:%M:%S";
doc.on('click', "input.datetime", function () { doc.on('click', "input.datetime", function () {
var tformat = $(this).data('w2p_datetime_format') var tformat = $(this).data('w2p_datetime_format');
var active = $(this).data('w2p_datetime'); var active = $(this).data('w2p_datetime');
var format = (typeof tformat != 'undefined') ? tformat : datetime_format; var format = (typeof tformat != 'undefined') ? tformat : datetime_format;
if(active === undefined) { if(active === undefined) {
@@ -196,7 +196,7 @@
}); });
var date_format = (typeof w2p_ajax_date_format != 'undefined') ? w2p_ajax_date_format : "%Y-%m-%d"; var date_format = (typeof w2p_ajax_date_format != 'undefined') ? w2p_ajax_date_format : "%Y-%m-%d";
doc.on('click', "input.date", function () { doc.on('click', "input.date", function () {
var tformat = $(this).data('w2p_date_format') var tformat = $(this).data('w2p_date_format');
var active = $(this).data('w2p_date'); var active = $(this).data('w2p_date');
var format = (typeof tformat != 'undefined') ? tformat : date_format; var format = (typeof tformat != 'undefined') ? tformat : date_format;
if(active === undefined) { if(active === undefined) {
@@ -1,4 +1,3 @@
def hello1(): def hello1():
""" simple page without template """ """ simple page without template """
+2 -2
View File
@@ -179,7 +179,7 @@
}); });
var datetime_format = (typeof w2p_ajax_datetime_format != 'undefined') ? w2p_ajax_datetime_format : "%Y-%m-%d %H:%M:%S"; var datetime_format = (typeof w2p_ajax_datetime_format != 'undefined') ? w2p_ajax_datetime_format : "%Y-%m-%d %H:%M:%S";
doc.on('click', "input.datetime", function () { doc.on('click', "input.datetime", function () {
var tformat = $(this).data('w2p_datetime_format') var tformat = $(this).data('w2p_datetime_format');
var active = $(this).data('w2p_datetime'); var active = $(this).data('w2p_datetime');
var format = (typeof tformat != 'undefined') ? tformat : datetime_format; var format = (typeof tformat != 'undefined') ? tformat : datetime_format;
if(active === undefined) { if(active === undefined) {
@@ -196,7 +196,7 @@
}); });
var date_format = (typeof w2p_ajax_date_format != 'undefined') ? w2p_ajax_date_format : "%Y-%m-%d"; var date_format = (typeof w2p_ajax_date_format != 'undefined') ? w2p_ajax_date_format : "%Y-%m-%d";
doc.on('click', "input.date", function () { doc.on('click', "input.date", function () {
var tformat = $(this).data('w2p_date_format') var tformat = $(this).data('w2p_date_format');
var active = $(this).data('w2p_date'); var active = $(this).data('w2p_date');
var format = (typeof tformat != 'undefined') ? tformat : date_format; var format = (typeof tformat != 'undefined') ? tformat : date_format;
if(active === undefined) { if(active === undefined) {
+2 -2
View File
@@ -179,7 +179,7 @@
}); });
var datetime_format = (typeof w2p_ajax_datetime_format != 'undefined') ? w2p_ajax_datetime_format : "%Y-%m-%d %H:%M:%S"; var datetime_format = (typeof w2p_ajax_datetime_format != 'undefined') ? w2p_ajax_datetime_format : "%Y-%m-%d %H:%M:%S";
doc.on('click', "input.datetime", function () { doc.on('click', "input.datetime", function () {
var tformat = $(this).data('w2p_datetime_format') var tformat = $(this).data('w2p_datetime_format');
var active = $(this).data('w2p_datetime'); var active = $(this).data('w2p_datetime');
var format = (typeof tformat != 'undefined') ? tformat : datetime_format; var format = (typeof tformat != 'undefined') ? tformat : datetime_format;
if(active === undefined) { if(active === undefined) {
@@ -196,7 +196,7 @@
}); });
var date_format = (typeof w2p_ajax_date_format != 'undefined') ? w2p_ajax_date_format : "%Y-%m-%d"; var date_format = (typeof w2p_ajax_date_format != 'undefined') ? w2p_ajax_date_format : "%Y-%m-%d";
doc.on('click', "input.date", function () { doc.on('click', "input.date", function () {
var tformat = $(this).data('w2p_date_format') var tformat = $(this).data('w2p_date_format');
var active = $(this).data('w2p_date'); var active = $(this).data('w2p_date');
var format = (typeof tformat != 'undefined') ? tformat : date_format; var format = (typeof tformat != 'undefined') ? tformat : date_format;
if(active === undefined) { if(active === undefined) {
+3 -7
View File
@@ -234,12 +234,6 @@ except ImportError:
except ImportError: except ImportError:
simplejson = None simplejson = None
try:
from gluon import validators
have_validators = True
except (ImportError, SyntaxError):
have_validators = False
LOGGER = logging.getLogger("web2py.dal") LOGGER = logging.getLogger("web2py.dal")
DEFAULT = lambda:0 DEFAULT = lambda:0
@@ -6872,7 +6866,9 @@ def sqlhtml_validators(field):
fieldtype fieldtype
""" """
db = field.db db = field.db
if not have_validators: try:
from gluon import validators
except ImportError:
return [] return []
field_type, field_length = field.type, field.length field_type, field_length = field.type, field.length
if isinstance(field_type, SQLCustomType): if isinstance(field_type, SQLCustomType):
+2 -2
View File
@@ -2414,9 +2414,9 @@ class Auth(object):
next = cas.logout_url(next) next = cas.logout_url(next)
current.session.auth = None current.session.auth = None
current.session.flash = self.messages.logged_out
if self.settings.renew_session_onlogout: if self.settings.renew_session_onlogout:
current.session.renew(clear_session=not self.settings.keep_session_onlogout) current.session.renew(clear_session=not self.settings.keep_session_onlogout)
current.session.flash = self.messages.logged_out
if not next is None: if not next is None:
redirect(next) redirect(next)
@@ -5858,7 +5858,7 @@ class Wiki(object):
class Config(object): class Config(object):
def __init__( def __init__(
self, self,
filename, filename,
section, section,
default_values={} default_values={}
): ):
+4 -1
View File
@@ -2890,7 +2890,8 @@ class CRYPT(object):
key=None, key=None,
digest_alg='pbkdf2(1000,20,sha512)', digest_alg='pbkdf2(1000,20,sha512)',
min_length=0, min_length=0,
error_message='too short', salt=True): error_message='too short', salt=True,
max_length=1024):
""" """
important, digest_alg='md5' is not the default hashing algorithm for important, digest_alg='md5' is not the default hashing algorithm for
web2py. This is only an example of usage of this function. web2py. This is only an example of usage of this function.
@@ -2901,10 +2902,12 @@ class CRYPT(object):
self.key = key self.key = key
self.digest_alg = digest_alg self.digest_alg = digest_alg
self.min_length = min_length self.min_length = min_length
self.max_length = max_length
self.error_message = error_message self.error_message = error_message
self.salt = salt self.salt = salt
def __call__(self, value): def __call__(self, value):
value = value and value[:self.max_length]
if len(value) < self.min_length: if len(value) < self.min_length:
return ('', translate(self.error_message)) return ('', translate(self.error_message))
return (LazyCrypt(self, value), None) return (LazyCrypt(self, value), None)