first() backed by limitby to avoid memory and cpu cycles wasting
This commit is contained in:
+7
-10
@@ -1899,8 +1899,8 @@ class Auth(object):
|
|||||||
logins user as specified by username (or email) and password
|
logins user as specified by username (or email) and password
|
||||||
"""
|
"""
|
||||||
settings = self._get_login_settings()
|
settings = self._get_login_settings()
|
||||||
user = self.db(settings.table_user[settings.userfield] == \
|
user = settings.table_user(**{settings.userfield: \
|
||||||
username).select().first()
|
username})
|
||||||
if user and user.get(settings.passfield, False):
|
if user and user.get(settings.passfield, False):
|
||||||
password = settings.table_user[
|
password = settings.table_user[
|
||||||
settings.passfield].validate(password)[0]
|
settings.passfield].validate(password)[0]
|
||||||
@@ -2168,8 +2168,7 @@ class Auth(object):
|
|||||||
|
|
||||||
accepted_form = True
|
accepted_form = True
|
||||||
# check for username in db
|
# check for username in db
|
||||||
user = self.db(table_user[username]
|
user = table_user(**{username: form.vars[username]})
|
||||||
== form.vars[username]).select().first()
|
|
||||||
if user:
|
if user:
|
||||||
# user in db, check if registration pending or disabled
|
# user in db, check if registration pending or disabled
|
||||||
temp_user = user
|
temp_user = user
|
||||||
@@ -2440,9 +2439,7 @@ class Auth(object):
|
|||||||
if not self.settings.registration_requires_verification:
|
if not self.settings.registration_requires_verification:
|
||||||
table_user[form.vars.id] = dict(registration_key='')
|
table_user[form.vars.id] = dict(registration_key='')
|
||||||
session.flash = self.messages.registration_successful
|
session.flash = self.messages.registration_successful
|
||||||
user = self.db(
|
user = table_user(**{username: form.vars[username]})
|
||||||
table_user[username] == form.vars[username]
|
|
||||||
).select().first()
|
|
||||||
self.login_user(user)
|
self.login_user(user)
|
||||||
session.flash = self.messages.logged_in
|
session.flash = self.messages.logged_in
|
||||||
self.log_event(log, form.vars)
|
self.log_event(log, form.vars)
|
||||||
@@ -2882,7 +2879,7 @@ class Auth(object):
|
|||||||
onvalidation=onvalidation,
|
onvalidation=onvalidation,
|
||||||
hideerror=self.settings.hideerror):
|
hideerror=self.settings.hideerror):
|
||||||
|
|
||||||
if not form.vars['old_password'] == s.select().first()[passfield]:
|
if not form.vars['old_password'] == s.select(limitby=(0,1), orderby_on_limitby=False).first()[passfield]:
|
||||||
form.errors['old_password'] = self.messages.invalid_password
|
form.errors['old_password'] = self.messages.invalid_password
|
||||||
else:
|
else:
|
||||||
d = {passfield: str(form.vars.new_password)}
|
d = {passfield: str(form.vars.new_password)}
|
||||||
@@ -3320,7 +3317,7 @@ class Auth(object):
|
|||||||
if group_id == 0:
|
if group_id == 0:
|
||||||
group_id = self.user_group()
|
group_id = self.user_group()
|
||||||
record = self.db(permission.group_id == group_id)(permission.name == name)(permission.table_name == str(table_name))(
|
record = self.db(permission.group_id == group_id)(permission.name == name)(permission.table_name == str(table_name))(
|
||||||
permission.record_id == long(record_id)).select().first()
|
permission.record_id == long(record_id)).select(limitby=(0,1), orderby_on_limitby=False).first()
|
||||||
if record:
|
if record:
|
||||||
id = record.id
|
id = record.id
|
||||||
else:
|
else:
|
||||||
@@ -5206,7 +5203,7 @@ class Wiki(object):
|
|||||||
db.wiki_tag.insert(name=tag, wiki_page=id)
|
db.wiki_tag.insert(name=tag, wiki_page=id)
|
||||||
|
|
||||||
def update_tags_update(dbset, page, db=db):
|
def update_tags_update(dbset, page, db=db):
|
||||||
page = dbset.select().first()
|
page = dbset.select(limitby=(0,1)).first()
|
||||||
db(db.wiki_tag.wiki_page == page.id).delete()
|
db(db.wiki_tag.wiki_page == page.id).delete()
|
||||||
for tag in page.tags or []:
|
for tag in page.tags or []:
|
||||||
tag = tag.strip().lower()
|
tag = tag.strip().lower()
|
||||||
|
|||||||
Reference in New Issue
Block a user