This question has been flagged

Well, hello!

I'm using Odoo 10. After a new user sign up (through localhost:8069/web/signup) i want him to be automatically allocated inside a group i created on my very own custom module (the user will need authentication from an admin later on so he can be converted to a regular portal user; after signup he will receive restricted access).

I have tryed many things. My latest effort looks like this:

class RestrictAccessOnSignup(auth_signup_controller.AuthSignupHome):

def do_signup(self, *args):
super(RestrictAccessOnSignup, self).do_signup(*args)
request.env['res.groups'].sudo().write({'groups_id': 'group_unuser'})

Note that i have import odoo.addons.auth_signup.controllers.main as auth_signup_controller
so i can override the auth_signup controller.


I have located that method as the responsible for doing the signup. So i call it in my new method and then try to change the newly created user's group_id.


What i miss is a fundamental understanding of how to overwrite a field's value from another model inside a controller method context. I'm using the 'request' object although i'm not sure of it. I have seen people using 'self.pool['res.users'] (e.g.) for such purposes but i don't understand how to apply it inside my problem's context.


I believe, also, that there is a way to change the default group for a user after it is created (i would like to know), but i also want to understand how to solve the general problem (accessing and overwriting a field's value from another module).


Another weird thing is that the field groups_id does exist in 'res.users' model, but it does not appear as a collumn in my pgAdmin interface when i click to see the 'res.users' table... Any idea why?


Thanks a lot!


Avatar
Discard
Best Answer

You can include user into a group by just adding simple script, for eg:

group_id = request.env['ir.model.data'].get_object('event', 'group_event_user')
group_id.write({'users': [(4, users.id)]})

Next thing, you can easily access model using the request object itself. you can refer this link to know more about env, http://odoo-new-api-guide-line.readthedocs.io/en/latest/environment.html




Avatar
Discard