Esempio n. 1
0
    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()
Esempio n. 2
0
    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()
Esempio n. 3
0
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,
            }))
Esempio n. 4
0
    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
Esempio n. 5
0
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,
    }))
Esempio n. 6
0
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"))
Esempio n. 7
0
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"))
Esempio n. 8
0
    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
Esempio n. 9
0
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,
            }))
Esempio n. 10
0
    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
Esempio n. 11
0
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},
        ),
    )
Esempio n. 12
0
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"))
Esempio n. 13
0
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,
            }))
Esempio n. 14
0
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,
    }))
Esempio n. 15
0
    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
Esempio n. 16
0
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"))
Esempio n. 17
0
def auth_backends(request):
    return {
        'auth_backends': get_auth_backends(),
    }
Esempio n. 18
0
def auth_backends(request):
    return {
        'auth_backends': get_auth_backends(),
    }