Merge remote-tracking branch 'origin/auth_supplier' into auth_supplier
commit
8f5512b7eb
|
@ -22,6 +22,7 @@ addon | version | summary
|
||||||
[auth_admin_passkey](auth_admin_passkey/) | 8.0.2.1.1 | Authentification - Admin Passkey
|
[auth_admin_passkey](auth_admin_passkey/) | 8.0.2.1.1 | Authentification - Admin Passkey
|
||||||
[auth_dynamic_groups](auth_dynamic_groups/) | 8.0.1.0.0 | Have membership conditions for certain groups
|
[auth_dynamic_groups](auth_dynamic_groups/) | 8.0.1.0.0 | Have membership conditions for certain groups
|
||||||
[auth_from_http_remote_user](auth_from_http_remote_user/) | 8.0.1.0.0 | Authenticate via HTTP Remote User
|
[auth_from_http_remote_user](auth_from_http_remote_user/) | 8.0.1.0.0 | Authenticate via HTTP Remote User
|
||||||
|
[auth_supplier](auth_supplier/) | 8.0.1.0.0 | Auth Supplier
|
||||||
[base_concurrency](base_concurrency/) | 8.0.1.0.0 | Base Concurrency
|
[base_concurrency](base_concurrency/) | 8.0.1.0.0 | Base Concurrency
|
||||||
[base_debug4all](base_debug4all/) | 8.0.1.0.0 | Shows full debug options for all users
|
[base_debug4all](base_debug4all/) | 8.0.1.0.0 | Shows full debug options for all users
|
||||||
[base_external_dbsource](base_external_dbsource/) | 8.0.1.3.0 | External Database Sources
|
[base_external_dbsource](base_external_dbsource/) | 8.0.1.3.0 | External Database Sources
|
||||||
|
@ -39,6 +40,7 @@ addon | version | summary
|
||||||
[fetchmail_notify_error_to_sender](fetchmail_notify_error_to_sender/) | 8.0.1.0.0 | If fetching mails gives error, send an email to sender
|
[fetchmail_notify_error_to_sender](fetchmail_notify_error_to_sender/) | 8.0.1.0.0 | If fetching mails gives error, send an email to sender
|
||||||
[inactive_session_timeout](inactive_session_timeout/) | 8.0.1.0.0 | This module disable all inactive sessions since a given delay
|
[inactive_session_timeout](inactive_session_timeout/) | 8.0.1.0.0 | This module disable all inactive sessions since a given delay
|
||||||
[language_path_mixin](language_path_mixin/) | 8.0.1.0.0 | Setting the partner's language in RML reports
|
[language_path_mixin](language_path_mixin/) | 8.0.1.0.0 | Setting the partner's language in RML reports
|
||||||
|
[log_forwarded_for_ip](log_forwarded_for_ip/) | 8.0.1.0.0 | Displays source IPs in log when behind a reverse proxy
|
||||||
[mail_environment](mail_environment/) | 8.0.0.1.0 | Server env config for mail + fetchmail
|
[mail_environment](mail_environment/) | 8.0.0.1.0 | Server env config for mail + fetchmail
|
||||||
[mass_editing](mass_editing/) | 8.0.1.3.0 | Mass Editing
|
[mass_editing](mass_editing/) | 8.0.1.3.0 | Mass Editing
|
||||||
[module_prototyper](module_prototyper/) | 8.0.0.3.0 | Prototype your module.
|
[module_prototyper](module_prototyper/) | 8.0.0.3.0 | Prototype your module.
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
#
|
#
|
||||||
##############################################################################
|
##############################################################################
|
||||||
from openerp.models import Model
|
from openerp.models import Model
|
||||||
from openerp.modules.registry import RegistryManager
|
|
||||||
from openerp import SUPERUSER_ID
|
from openerp import SUPERUSER_ID
|
||||||
|
|
||||||
|
|
||||||
|
@ -29,27 +28,28 @@ class res_users(Model):
|
||||||
def _login(self, db, login, password):
|
def _login(self, db, login, password):
|
||||||
uid = super(res_users, self)._login(db, login, password)
|
uid = super(res_users, self)._login(db, login, password)
|
||||||
|
|
||||||
if uid:
|
if uid and uid != SUPERUSER_ID:
|
||||||
self.update_dynamic_groups(uid, db)
|
self.update_dynamic_groups(uid, db)
|
||||||
|
|
||||||
return uid
|
return uid
|
||||||
|
|
||||||
def update_dynamic_groups(self, uid, db):
|
def update_dynamic_groups(self, uid, db):
|
||||||
pool = RegistryManager.get(db)
|
cr = self.pool._db.cursor(serialized=False)
|
||||||
cr = pool._db.cursor()
|
groups_obj = self.pool.get('res.groups')
|
||||||
user = pool.get('res.users').browse(cr, SUPERUSER_ID, uid)
|
try:
|
||||||
groups_obj = pool.get('res.groups')
|
dynamic_groups = groups_obj.browse(
|
||||||
user.write(
|
cr, SUPERUSER_ID, groups_obj.search(
|
||||||
{
|
cr, SUPERUSER_ID, [('is_dynamic', '=', True)]))
|
||||||
'groups_id': [
|
cr.execute(
|
||||||
(4, dynamic_group.id)
|
'delete from res_groups_users_rel where uid=%s and gid in %s',
|
||||||
if dynamic_group.eval_dynamic_group_condition(uid=uid)
|
(uid, tuple(dynamic_groups.ids)))
|
||||||
else (3, dynamic_group.id)
|
for dynamic_group in dynamic_groups:
|
||||||
for dynamic_group in groups_obj.browse(
|
if dynamic_group.eval_dynamic_group_condition(uid=uid):
|
||||||
cr, SUPERUSER_ID,
|
cr.execute(
|
||||||
groups_obj.search(cr, SUPERUSER_ID,
|
'insert into res_groups_users_rel (uid, gid) values '
|
||||||
[('is_dynamic', '=', True)]))
|
'(%s, %s)',
|
||||||
],
|
(uid, dynamic_group.id))
|
||||||
})
|
self.invalidate_cache(cr, uid, ['groups_id'], [uid])
|
||||||
cr.commit()
|
cr.commit()
|
||||||
|
finally:
|
||||||
cr.close()
|
cr.close()
|
||||||
|
|
|
@ -14,8 +14,8 @@
|
||||||
'security/auth_supplier_security.xml',
|
'security/auth_supplier_security.xml',
|
||||||
'views/auth_supplier_view.xml',
|
'views/auth_supplier_view.xml',
|
||||||
],
|
],
|
||||||
'author': 'Incaser Informatica S.L., '
|
'author': 'Antiun Ingeniería S.L., '
|
||||||
'Antiun Ingeniería S.L., '
|
'Incaser Informatica S.L., '
|
||||||
'Odoo Community Association (OCA)',
|
'Odoo Community Association (OCA)',
|
||||||
'website': 'http://www.incaser.es',
|
'website': 'http://www.incaser.es',
|
||||||
'license': 'AGPL-3',
|
'license': 'AGPL-3',
|
||||||
|
|
Loading…
Reference in New Issue