fixed add_membership, del_membership, add_membership = IntegrityError (when auth.enable_record_versioning) #1087
This commit is contained in:
+14
-3
@@ -4013,8 +4013,13 @@ class Auth(object):
|
|||||||
if not user_id and self.user:
|
if not user_id and self.user:
|
||||||
user_id = self.user.id
|
user_id = self.user.id
|
||||||
membership = self.table_membership()
|
membership = self.table_membership()
|
||||||
record = membership(user_id=user_id, group_id=group_id)
|
db = membership._db
|
||||||
|
record = db((membership.user_id==user_id)&
|
||||||
|
(membership.group_id==group_id),
|
||||||
|
ignore_common_filters=True).select().first()
|
||||||
if record:
|
if record:
|
||||||
|
if hasattr(record, 'is_active') and not record.is_active:
|
||||||
|
record.update_record(is_active=True)
|
||||||
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)
|
||||||
@@ -4109,9 +4114,15 @@ class Auth(object):
|
|||||||
permission = self.table_permission()
|
permission = self.table_permission()
|
||||||
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.record_id == long(record_id)).select(limitby=(0, 1), orderby_on_limitby=False).first()
|
(permission.name == name)&
|
||||||
|
(permission.table_name == str(table_name))&
|
||||||
|
(permission.record_id == long(record_id)),
|
||||||
|
ignore_common_filters=True).select(
|
||||||
|
limitby=(0, 1), orderby_on_limitby=False).first()
|
||||||
if record:
|
if record:
|
||||||
|
if hasattr(record, 'is_active') and not record.is_ctive:
|
||||||
|
record.update_record(is_active=True)
|
||||||
id = record.id
|
id = record.id
|
||||||
else:
|
else:
|
||||||
id = permission.insert(group_id=group_id, name=name,
|
id = permission.insert(group_id=group_id, name=name,
|
||||||
|
|||||||
Reference in New Issue
Block a user