auth.mygroups
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 1.99.4 (2012-01-26 12:53:05) stable
|
Version 1.99.4 (2012-01-29 15:13:44) stable
|
||||||
|
|||||||
+24
-4
@@ -872,6 +872,7 @@ class Auth(object):
|
|||||||
request = current.request
|
request = current.request
|
||||||
session = current.session
|
session = current.session
|
||||||
auth = session.auth
|
auth = session.auth
|
||||||
|
self.mygroups = auth.mygroups or {}
|
||||||
if auth and auth.last_visit and auth.last_visit + \
|
if auth and auth.last_visit and auth.last_visit + \
|
||||||
datetime.timedelta(days=0, seconds=auth.expiration) > request.now:
|
datetime.timedelta(days=0, seconds=auth.expiration) > request.now:
|
||||||
self.user = auth.user
|
self.user = auth.user
|
||||||
@@ -1517,6 +1518,7 @@ class Auth(object):
|
|||||||
expiration=self.settings.expiration,
|
expiration=self.settings.expiration,
|
||||||
hmac_key = web2py_uuid())
|
hmac_key = web2py_uuid())
|
||||||
self.user = user
|
self.user = user
|
||||||
|
self.update_groups()
|
||||||
return user
|
return user
|
||||||
else:
|
else:
|
||||||
# user not in database try other login methods
|
# user not in database try other login methods
|
||||||
@@ -1807,6 +1809,8 @@ class Auth(object):
|
|||||||
self.log_event(log, user)
|
self.log_event(log, user)
|
||||||
session.flash = self.messages.logged_in
|
session.flash = self.messages.logged_in
|
||||||
|
|
||||||
|
self.update_groups()
|
||||||
|
|
||||||
# how to continue
|
# how to continue
|
||||||
if self.settings.login_form == self:
|
if self.settings.login_form == self:
|
||||||
if accepted_form:
|
if accepted_form:
|
||||||
@@ -1951,7 +1955,8 @@ class Auth(object):
|
|||||||
session.auth = Storage(user=user, last_visit=request.now,
|
session.auth = Storage(user=user, last_visit=request.now,
|
||||||
expiration=self.settings.expiration,
|
expiration=self.settings.expiration,
|
||||||
hmac_key = web2py_uuid())
|
hmac_key = web2py_uuid())
|
||||||
self.user = user
|
self.user = user
|
||||||
|
self.update_groups()
|
||||||
session.flash = self.messages.logged_in
|
session.flash = self.messages.logged_in
|
||||||
self.log_event(log, form.vars)
|
self.log_event(log, form.vars)
|
||||||
callback(onaccept,form)
|
callback(onaccept,form)
|
||||||
@@ -2485,6 +2490,17 @@ class Auth(object):
|
|||||||
return SQLFORM.factory(Field('user_id', 'integer'))
|
return SQLFORM.factory(Field('user_id', 'integer'))
|
||||||
return self.user
|
return self.user
|
||||||
|
|
||||||
|
def update_groups(self):
|
||||||
|
if not self.user:
|
||||||
|
return
|
||||||
|
mygroups = self.mygroups = current.session.auth.mygroups = {}
|
||||||
|
memberships = self.db(self.settings.table_membership.user_id
|
||||||
|
== self.user.id).select()
|
||||||
|
for membership in memberships:
|
||||||
|
group = self.settings.table_group(membership.group_id)
|
||||||
|
if group:
|
||||||
|
mygroups[membership.group_id] = group.role
|
||||||
|
|
||||||
def groups(self):
|
def groups(self):
|
||||||
"""
|
"""
|
||||||
displays the groups and their roles for the logged in user
|
displays the groups and their roles for the logged in user
|
||||||
@@ -2607,6 +2623,7 @@ class Auth(object):
|
|||||||
self.db(self.settings.table_group.id == group_id).delete()
|
self.db(self.settings.table_group.id == group_id).delete()
|
||||||
self.db(self.settings.table_membership.group_id == group_id).delete()
|
self.db(self.settings.table_membership.group_id == group_id).delete()
|
||||||
self.db(self.settings.table_permission.group_id == group_id).delete()
|
self.db(self.settings.table_permission.group_id == group_id).delete()
|
||||||
|
self.update_groups()
|
||||||
self.log_event(self.messages.del_group_log,dict(group_id=group_id))
|
self.log_event(self.messages.del_group_log,dict(group_id=group_id))
|
||||||
|
|
||||||
def id_group(self, role):
|
def id_group(self, role):
|
||||||
@@ -2669,6 +2686,7 @@ class Auth(object):
|
|||||||
return record.id
|
return record.id
|
||||||
else:
|
else:
|
||||||
id = membership.insert(group_id=group_id, user_id=user_id)
|
id = membership.insert(group_id=group_id, user_id=user_id)
|
||||||
|
self.update_groups()
|
||||||
self.log_event(self.messages.add_membership_log,
|
self.log_event(self.messages.add_membership_log,
|
||||||
dict(user_id=user_id, group_id=group_id))
|
dict(user_id=user_id, group_id=group_id))
|
||||||
return id
|
return id
|
||||||
@@ -2685,9 +2703,11 @@ class Auth(object):
|
|||||||
membership = self.settings.table_membership
|
membership = self.settings.table_membership
|
||||||
self.log_event(self.messages.del_membership_log,
|
self.log_event(self.messages.del_membership_log,
|
||||||
dict(user_id=user_id,group_id=group_id))
|
dict(user_id=user_id,group_id=group_id))
|
||||||
return self.db(membership.user_id
|
ret = self.db(membership.user_id
|
||||||
== user_id)(membership.group_id
|
== user_id)(membership.group_id
|
||||||
== group_id).delete()
|
== group_id).delete()
|
||||||
|
self.update_groups()
|
||||||
|
return ret
|
||||||
|
|
||||||
def has_permission(
|
def has_permission(
|
||||||
self,
|
self,
|
||||||
|
|||||||
Reference in New Issue
Block a user