def save(self, user): from reviewboard.accounts.backends import get_auth_backends auth_backends = get_auth_backends() primary_backend = auth_backends[0] password = self.cleaned_data["password1"] if primary_backend.supports_change_password and password: primary_backend.update_password(user, password) if primary_backend.supports_change_name: user.first_name = self.cleaned_data["first_name"] user.last_name = self.cleaned_data["last_name"] primary_backend.update_name(user) if primary_backend.supports_change_email: user.email = self.cleaned_data["email"] primary_backend.update_email(user) user.review_groups = self.cleaned_data["groups"] user.save() profile = user.get_profile() profile.first_time_setup_done = True profile.syntax_highlighting = self.cleaned_data["syntax_highlighting"] profile.is_private = self.cleaned_data["profile_private"] profile.save()
def save(self, user): from reviewboard.accounts.backends import get_auth_backends auth_backends = get_auth_backends() primary_backend = auth_backends[0] password = self.cleaned_data['password1'] if primary_backend.supports_change_password and password: primary_backend.update_password(user, password) if primary_backend.supports_change_name: user.first_name = self.cleaned_data['first_name'] user.last_name = self.cleaned_data['last_name'] primary_backend.update_name(user) if primary_backend.supports_change_email: user.email = self.cleaned_data['email'] primary_backend.update_email(user) user.review_groups = self.cleaned_data['groups'] user.save() profile = user.get_profile() profile.first_time_setup_done = True profile.syntax_highlighting = self.cleaned_data['syntax_highlighting'] profile.is_private = self.cleaned_data['profile_private'] profile.open_an_issue = self.cleaned_data['open_an_issue'] profile.timezone = self.cleaned_data['timezone'] profile.save()
def user_preferences(request, template_name='accounts/prefs.html'): # TODO: Figure out the right place to redirect when using a LocalSite. redirect_to = \ request.REQUEST.get(REDIRECT_FIELD_NAME, request.REQUEST.get('redirect_to', None)) if not redirect_to: redirect_to = reverse("dashboard") try: profile = request.user.get_profile() except Profile.DoesNotExist: # The Profile didn't exist, but it might have been created since. # Let's try to create one, and if one exists now, we'll just # fetch again. try: profile = Profile.objects.create(user=request.user) except IntegrityError: # This was created since we checked, so load it again. profile = request.user.get_profile() auth_backends = get_auth_backends() if request.POST: form = PreferencesForm(request.user, request.POST) if form.is_valid(): form.save(request.user) return HttpResponseRedirect(redirect_to) else: form = PreferencesForm( request.user, { 'settings': settings, 'redirect_to': redirect_to, 'first_name': request.user.first_name, 'last_name': request.user.last_name, 'email': request.user.email, 'timezone': profile.timezone, 'syntax_highlighting': profile.syntax_highlighting, 'profile_private': profile.is_private, 'open_an_issue': profile.open_an_issue, 'groups': [g.id for g in request.user.review_groups.all()], }) return render_to_response( template_name, RequestContext( request, { 'form': form, 'settings': settings, 'can_change_password': auth_backends[0].supports_change_password, }))
def __init__(self, user, *args, **kwargs): from reviewboard.accounts.backends import get_auth_backends super(forms.Form, self).__init__(*args, **kwargs) siteconfig = SiteConfiguration.objects.get_current() auth_backends = get_auth_backends() self.fields['groups'].choices = [ (g.id, g.display_name) for g in Group.objects.accessible(user=user) ] self.fields['email'].required = auth_backends[0].supports_change_email
def user_preferences(request, template_name='accounts/prefs.html'): # TODO: Figure out the right place to redirect when using a LocalSite. redirect_to = \ request.REQUEST.get(REDIRECT_FIELD_NAME, request.REQUEST.get('redirect_to', None)) if not redirect_to: redirect_to = reverse("dashboard") try: profile = request.user.get_profile() except Profile.DoesNotExist: # The Profile didn't exist, but it might have been created since. # Let's try to create one, and if one exists now, we'll just # fetch again. try: profile = Profile.objects.create(user=request.user) except IntegrityError: # This was created since we checked, so load it again. profile = request.user.get_profile() auth_backends = get_auth_backends() if request.POST: form = PreferencesForm(request.user, request.POST) if form.is_valid(): form.save(request.user) return HttpResponseRedirect(redirect_to) else: form = PreferencesForm(request.user, { 'settings': settings, 'redirect_to': redirect_to, 'first_name': request.user.first_name, 'last_name': request.user.last_name, 'email': request.user.email, 'timezone': profile.timezone, 'syntax_highlighting': profile.syntax_highlighting, 'profile_private': profile.is_private, 'open_an_issue': profile.open_an_issue, 'groups': [g.id for g in request.user.review_groups.all()], }) return render_to_response(template_name, RequestContext(request, { 'form': form, 'settings': settings, 'can_change_password': auth_backends[0].supports_change_password, }))
def account_register(request, next_url='dashboard'): """ Handles redirection to the appropriate registration page, depending on the authentication type the user has configured. """ siteconfig = SiteConfiguration.objects.get_current() auth_backends = get_auth_backends() if (auth_backends[0].supports_registration and siteconfig.get("auth_enable_registration")): return register(request, next_page=reverse(next_url), form_class=RegistrationForm) return HttpResponseRedirect(reverse("login"))
def __init__(self, user, *args, **kwargs): from reviewboard.accounts.backends import get_auth_backends super(forms.Form, self).__init__(*args, **kwargs) auth_backends = get_auth_backends() choices = [] for g in Group.objects.accessible(user=user).order_by("display_name"): choices.append((g.id, g.display_name)) for site in user.local_site.all().order_by("name"): for g in Group.objects.accessible(user=user, local_site=site).order_by("display_name"): display_name = "%s / %s" % (g.local_site.name, g.display_name) choices.append((g.id, display_name)) self.fields["groups"].choices = choices self.fields["email"].required = auth_backends[0].supports_change_email
def user_preferences(request, template_name='accounts/prefs.html'): # TODO: We should just get rid of this redirect and have it show the # settings again with a "saved" message. redirect_to = request.REQUEST.get(REDIRECT_FIELD_NAME, request.REQUEST.get('redirect_to', None)) if not redirect_to: redirect_to = reverse("dashboard") profile, is_new = Profile.objects.get_or_create(user=request.user) auth_backends = get_auth_backends() if request.POST: form = PreferencesForm(request.user, request.POST) if form.is_valid(): form.save(request.user) return HttpResponseRedirect(redirect_to) else: form = PreferencesForm( request.user, { 'settings': settings, 'redirect_to': redirect_to, 'first_name': request.user.first_name, 'last_name': request.user.last_name, 'email': request.user.email, 'timezone': profile.timezone, 'syntax_highlighting': profile.syntax_highlighting, 'profile_private': profile.is_private, 'open_an_issue': profile.open_an_issue, 'groups': [g.id for g in request.user.review_groups.all()], }) return render_to_response( template_name, RequestContext( request, { 'form': form, 'settings': settings, 'can_change_password': auth_backends[0].supports_change_password, }))
def __init__(self, user, *args, **kwargs): from reviewboard.accounts.backends import get_auth_backends super(forms.Form, self).__init__(*args, **kwargs) auth_backends = get_auth_backends() choices = [] for g in Group.objects.accessible(user=user).order_by('display_name'): choices.append((g.id, g.display_name)) for site in user.local_site.all().order_by('name'): for g in Group.objects.accessible( user=user, local_site=site).order_by('display_name'): display_name = '%s / %s' % (g.local_site.name, g.display_name) choices.append((g.id, display_name)) self.fields['groups'].choices = choices self.fields['email'].required = auth_backends[0].supports_change_email
def user_preferences(request, template_name="accounts/prefs.html"): # TODO: We should just get rid of this redirect and have it show the # settings again with a "saved" message. redirect_to = request.REQUEST.get(REDIRECT_FIELD_NAME, request.REQUEST.get("redirect_to", None)) if not redirect_to: redirect_to = reverse("dashboard") profile, is_new = Profile.objects.get_or_create(user=request.user) auth_backends = get_auth_backends() if request.POST: form = PreferencesForm(request.user, request.POST) if form.is_valid(): form.save(request.user) return HttpResponseRedirect(redirect_to) else: form = PreferencesForm( request.user, { "settings": settings, "redirect_to": redirect_to, "first_name": request.user.first_name, "last_name": request.user.last_name, "email": request.user.email, "timezone": profile.timezone, "syntax_highlighting": profile.syntax_highlighting, "profile_private": profile.is_private, "open_an_issue": profile.open_an_issue, "groups": [g.id for g in request.user.review_groups.all()], }, ) return render_to_response( template_name, RequestContext( request, {"form": form, "settings": settings, "can_change_password": auth_backends[0].supports_change_password}, ), )
def account_register(request, next_url="dashboard"): """ Handles redirection to the appropriate registration page, depending on the authentication type the user has configured. """ siteconfig = SiteConfiguration.objects.get_current() auth_backends = get_auth_backends() if auth_backends[0].supports_registration and siteconfig.get("auth_enable_registration"): response = register(request, next_page=reverse(next_url), form_class=RegistrationForm) if request.user.is_authenticated(): # This will trigger sending an e-mail notification for # user registration, if enabled. user_registered.send(sender=None, user=request.user) return response return HttpResponseRedirect(reverse("login"))
def user_preferences(request, template_name='accounts/prefs.html'): # TODO: Figure out the right place to redirect when using a LocalSite. redirect_to = \ request.REQUEST.get(REDIRECT_FIELD_NAME, request.REQUEST.get('redirect_to', None)) if not redirect_to: redirect_to = reverse("dashboard") profile, profile_is_new = \ Profile.objects.get_or_create(user=request.user) profile.save() auth_backends = get_auth_backends() if request.POST: form = PreferencesForm(request.user, request.POST) if form.is_valid(): form.save(request.user) return HttpResponseRedirect(redirect_to) else: form = PreferencesForm( request.user, { 'settings': settings, 'redirect_to': redirect_to, 'first_name': request.user.first_name, 'last_name': request.user.last_name, 'email': request.user.email, 'syntax_highlighting': profile.syntax_highlighting, 'groups': [g.id for g in request.user.review_groups.all()], }) return render_to_response( template_name, RequestContext( request, { 'form': form, 'settings': settings, 'can_change_password': auth_backends[0].supports_change_password, }))
def user_preferences(request, template_name='accounts/prefs.html'): # TODO: Figure out the right place to redirect when using a LocalSite. redirect_to = \ request.REQUEST.get(REDIRECT_FIELD_NAME, request.REQUEST.get('redirect_to', None)) if not redirect_to: redirect_to = reverse("dashboard") profile, profile_is_new = \ Profile.objects.get_or_create(user=request.user) profile.save() auth_backends = get_auth_backends() if request.POST: form = PreferencesForm(request.user, request.POST) if form.is_valid(): form.save(request.user) return HttpResponseRedirect(redirect_to) else: form = PreferencesForm(request.user, { 'settings': settings, 'redirect_to': redirect_to, 'first_name': request.user.first_name, 'last_name': request.user.last_name, 'email': request.user.email, 'timezone': profile.timezone, 'syntax_highlighting': profile.syntax_highlighting, 'profile_private': profile.is_private, 'open_an_issue': profile.open_an_issue, 'groups': [g.id for g in request.user.review_groups.all()], }) return render_to_response(template_name, RequestContext(request, { 'form': form, 'settings': settings, 'can_change_password': auth_backends[0].supports_change_password, }))
def __init__(self, user, *args, **kwargs): from reviewboard.accounts.backends import get_auth_backends super(forms.Form, self).__init__(*args, **kwargs) siteconfig = SiteConfiguration.objects.get_current() auth_backends = get_auth_backends() choices = [] for g in Group.objects.accessible(user=user).order_by('display_name'): choices.append((g.id, g.display_name)) for site in user.local_site.all().order_by('name'): for g in Group.objects.accessible( user=user, local_site=site).order_by('display_name'): display_name = '%s / %s' % (g.local_site.name, g.display_name) choices.append((g.id, display_name)) self.fields['groups'].choices = choices self.fields['email'].required = auth_backends[0].supports_change_email
def account_register(request, next_url='dashboard'): """ Handles redirection to the appropriate registration page, depending on the authentication type the user has configured. """ siteconfig = SiteConfiguration.objects.get_current() auth_backends = get_auth_backends() if (auth_backends[0].supports_registration and siteconfig.get("auth_enable_registration")): response = register(request, next_page=reverse(next_url), form_class=RegistrationForm) if request.user.is_authenticated(): # This will trigger sending an e-mail notification for # user registration, if enabled. user_registered.send(sender=None, user=request.user) return response return HttpResponseRedirect(reverse("login"))
def auth_backends(request): return { 'auth_backends': get_auth_backends(), }