Ashvin Rathod (OpenERP) has proposed merging
lp:~openerp-dev/openobject-addons/trunk-portal_wizard-sbh-unlink_user-ara into
lp:~openerp-dev/openobject-addons/trunk-portal_wizard-sbh.
Requested reviews:
OpenERP R&D Team (openerp-dev)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-portal_wizard-sbh-unlink_user-ara/+merge/109563
Hello,
portal:
unlink user when user is not related to any portal.
send email with user name and password when new portal user created.
Thanks,
ara
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-portal_wizard-sbh-unlink_user-ara/+merge/109563
Your team OpenERP R&D Team is requested to review the proposed merge of
lp:~openerp-dev/openobject-addons/trunk-portal_wizard-sbh-unlink_user-ara into
lp:~openerp-dev/openobject-addons/trunk-portal_wizard-sbh.
=== modified file 'portal/wizard/portal_wizard.py'
--- portal/wizard/portal_wizard.py 2012-06-08 10:08:35 +0000
+++ portal/wizard/portal_wizard.py 2012-06-11 05:43:20 +0000
@@ -177,19 +177,21 @@
portal_obj = self.pool.get('res.portal')
for wiz in self.browse(cr, uid, ids, context):
# determine existing users
- portal_user=[user.id for user in wiz.portal_id.group_id.users]
+ portal_users=[portal_user.id for portal_user in wiz.portal_id.group_id.users]
add_users=[]
- removeuser=[]
+ remove_users=[]
new_users_data = []
+ login_conds = []
for u in wiz.user_ids:
login_cond = [('login', 'in', [u.user_email])]
existing_uids = user_obj.search(cr, ROOT_UID, login_cond)
existing_users = user_obj.browse(cr, ROOT_UID, existing_uids)
- existing_logins = [user.login for user in existing_users]
- if existing_uids and existing_uids[0] not in portal_user or existing_uids and u.has_portal_user:
+ existing_logins = [existing_login.login for existing_login in existing_users]
+ if existing_uids and existing_uids[0] not in portal_users or existing_uids and u.has_portal_user:
+ login_conds.append(login_cond[0])
add_users.append(existing_uids[0])
- if existing_uids and u.has_portal_user==False and existing_uids[0] in portal_user:
- removeuser.append(existing_uids[0])
+ if existing_uids and u.has_portal_user==False and existing_uids[0] in portal_users:
+ remove_users.append(existing_uids[0])
if u.user_email not in existing_logins:
new_users_data.append({
'name': u.name,
@@ -202,28 +204,25 @@
'partner_id': u.partner_id and u.partner_id.id,
} )
- for data in new_users_data:
+ for new_user_data in new_users_data:
portal_obj.write(cr, ROOT_UID, [wiz.portal_id.id],
- {'users': [(0, 0, data)]}, context0)
+ {'users': [(0, 0, new_user_data)]}, context0)
- created_user = user_obj.search(cr, ROOT_UID, [('user_email','=', data['login'])])
+ created_user = user_obj.search(cr, ROOT_UID, [('user_email','=', new_user_data['login']),('partner_id','=', new_user_data['partner_id'])])
add_users.append(created_user[0])
-
-
- if add_users and add_users not in portal_user:
+
+ #add the user relationship in portal.
+ if add_users and add_users not in portal_users:
portal_obj.write(cr, ROOT_UID, [wiz.portal_id.id],
{'users': [(6, 0, add_users)]}, context0)
-
+
#delete the user relationship from portal.
- if removeuser:
- portal_obj.write(cr, ROOT_UID, [wiz.portal_id.id],
- {'users': [(3, user_data) for user_data in removeuser]}, context0)
+ portal_obj.write(cr, ROOT_UID, [wiz.portal_id.id],
+ {'users': [(3, user_data) for user_data in remove_users]}, context0)
#unlink res user when portal user not in any portal.
all_portal_user = self.get_all_portal_user(cr)
- for data in removeuser:
- if data not in all_portal_user:
- user_obj.unlink(cr, ROOT_UID, [data])
+ user_obj.unlink(cr, ROOT_UID, [remove_user for remove_user in remove_users if remove_user not in all_portal_user])
data = {
'company': user.company_id.name,
@@ -231,9 +230,14 @@
'url': wiz.portal_id.url or _("(missing url)"),
'db': cr.dbname,
}
+ dest_uids = []
+ dest_users = []
mail_message_obj = self.pool.get('mail.message')
- dest_uids = user_obj.search(cr, ROOT_UID, login_cond)
- dest_users = user_obj.browse(cr, ROOT_UID, dest_uids)
+ for login_cond in login_conds:
+ dest_uids.append(user_obj.search(cr, ROOT_UID, [login_cond])[0])
+ for dest_uid in dest_uids:
+ dest_users.append(user_obj.browse(cr, ROOT_UID, dest_uid))
+
for dest_user in dest_users:
context['lang'] = dest_user.context_lang
data['login'] = dest_user.login
@@ -253,8 +257,6 @@
wizard()
-
-
class wizard_user(osv.osv_memory):
"""
A model to configure users in the portal wizard.
@@ -296,7 +298,4 @@
wizard_user()
-
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp