diff --git a/rhodecode/apps/login/views.py b/rhodecode/apps/login/views.py --- a/rhodecode/apps/login/views.py +++ b/rhodecode/apps/login/views.py @@ -273,16 +273,26 @@ class LoginView(BaseAppView): route_name='register', request_method='POST', renderer='rhodecode:templates/register.mako') def register_post(self): + from rhodecode.authentication.plugins import auth_rhodecode + self.load_default_context() captcha = self._get_captcha_data() auto_active = 'hg.register.auto_activate' in User.get_default_user()\ .AuthUser().permissions['global'] + extern_name = auth_rhodecode.RhodeCodeAuthPlugin.uid + extern_type = auth_rhodecode.RhodeCodeAuthPlugin.uid + register_form = RegisterForm(self.request.translate)() try: form_result = register_form.to_python(self.request.POST) form_result['active'] = auto_active + external_identity = self.request.POST.get('external_identity') + + if external_identity: + extern_name = external_identity + extern_type = external_identity if captcha.active: captcha_status, captcha_message = self.validate_captcha( @@ -295,11 +305,17 @@ class LoginView(BaseAppView): raise formencode.Invalid( _msg, _value, None, error_dict=error_dict) - new_user = UserModel().create_registration(form_result) + new_user = UserModel().create_registration( + form_result, extern_name=extern_name, extern_type=extern_type) action_data = {'data': new_user.get_api_data(), 'user_agent': self.request.user_agent} + + + if external_identity: + action_data['external_identity'] = external_identity + audit_user = audit_logger.UserWrap( username=new_user.username, user_id=new_user.user_id, diff --git a/rhodecode/model/user.py b/rhodecode/model/user.py --- a/rhodecode/model/user.py +++ b/rhodecode/model/user.py @@ -344,8 +344,8 @@ class UserModel(BaseModel): new_user.is_new_user = not edit # for users that didn's specify auth type, we use RhodeCode built in from rhodecode.authentication.plugins import auth_rhodecode - extern_name = extern_name or auth_rhodecode.RhodeCodeAuthPlugin.name - extern_type = extern_type or auth_rhodecode.RhodeCodeAuthPlugin.name + extern_name = extern_name or auth_rhodecode.RhodeCodeAuthPlugin.uid + extern_type = extern_type or auth_rhodecode.RhodeCodeAuthPlugin.uid try: new_user.username = username @@ -392,14 +392,15 @@ class UserModel(BaseModel): log.error(traceback.format_exc()) raise - def create_registration(self, form_data): + def create_registration(self, form_data, + extern_name='rhodecode', extern_type='rhodecode'): from rhodecode.model.notification import NotificationModel from rhodecode.model.notification import EmailNotificationModel try: form_data['admin'] = False - form_data['extern_name'] = 'rhodecode' - form_data['extern_type'] = 'rhodecode' + form_data['extern_name'] = extern_name + form_data['extern_type'] = extern_type new_user = self.create(form_data) self.sa.add(new_user)