예제 #1
0
파일: core.py 프로젝트: hkmshb/centrackb
def profile():
    user = authnz.current_user
    user_info = _(username=user.username,
                  email_addr=user.email_addr,
                  role=user.role)
    
    session = get_session()['messages']
    if request.method == 'POST':
        form = PasswordChangeForm(request, user)
        try:
            if form.is_valid():
                form.save()
                session['pass'].append('Password has been changed successfully.')
                return authnz.logout(success_redirect='/profile')
            else:
                session['fail'].append(form.errors)
        except HTTPResponse:
            raise
        except Exception as ex:
            error_message = 'Password change failed. Error: %s' % str(ex)
            session['fail'].append(error_message)
            logging.error(error_message, exc_info=True)
    
    roles = sorted(
        list(authnz.list_roles()),
        key=lambda x: x[1], reverse=True)
    return {
        'title': 'Profile',
        'user': user_info,
        'roles': roles,
        'readonly': True,
    }
예제 #2
0
 def put(self):
     data = ImmutableMultiDict(request.json)
     change_password_form = PasswordChangeForm(data, csrf_enabled=False)
     if change_password_form.validate():
         obj = User.query.filter(User.username == current_identity.username).first()
         change_password_form.save(obj)
         return jsonify({"status": "success", "message": "Password Changed"})
     return change_password_form.errors
예제 #3
0
 def test_pw_change(self):
     user = create_user()
     pw = 'new_pass1'
     form = PasswordChangeForm(user=user, data={
         'old_password': PASSWORD,
         'new_password1': pw,
         'new_password2': pw,
     })
     form.is_valid()
     form.save()
     self.assertTrue(form.password_changed())
예제 #4
0
 def test_pw_change(self):
     user = create_user()
     pw = 'new_pass1'
     form = PasswordChangeForm(user=user,
                               data={
                                   'old_password': PASSWORD,
                                   'new_password1': pw,
                                   'new_password2': pw,
                               })
     form.is_valid()
     form.save()
     self.assertTrue(form.password_changed())
예제 #5
0
파일: views.py 프로젝트: alexanderzor/clw
def settings_view(request):
    if request.method == 'POST':
        form = PasswordChangeForm(user=request.user, data=request.POST, files=request.FILES)
        #imgform = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            update_session_auth_hash(request, form.user)
            return HttpResponseRedirect(reverse('settings_view'))
        else:
            pass
    else:
        form = PasswordChangeForm(user=request.user)
        #imgform = UploadFileForm()
    context = {'form': form, }
    return render(request, "profile.html", context)
예제 #6
0
def password_change(request, template_name='registration/password_change_form.html',
                    post_change_redirect=None):
    if post_change_redirect is None:
        #post_change_redirect = reverse('django.contrib.auth.views.password_change_done')
        post_change_redirect = reverse('auth.views.password_change_done')
    if request.method == "POST":
        form = PasswordChangeForm(request.user, request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(post_change_redirect)
    else:
        form = PasswordChangeForm(request.user)
    return render_to_response(template_name, {
        'form': form,
    }, context_instance=RequestContext(request))
예제 #7
0
def password_change(request,
                    template_name='registration/password_change_form.html',
                    post_change_redirect=None):
    if post_change_redirect is None:
        #post_change_redirect = reverse('django.contrib.auth.views.password_change_done')
        post_change_redirect = reverse('auth.views.password_change_done')
    if request.method == "POST":
        form = PasswordChangeForm(request.user, request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(post_change_redirect)
    else:
        form = PasswordChangeForm(request.user)
    return render_to_response(template_name, {
        'form': form,
    },
                              context_instance=RequestContext(request))
예제 #8
0
def settings_view(request):
    if request.method == 'POST':
        form = PasswordChangeForm(user=request.user,
                                  data=request.POST,
                                  files=request.FILES)
        #imgform = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            update_session_auth_hash(request, form.user)
            return HttpResponseRedirect(reverse('settings_view'))
        else:
            pass
    else:
        form = PasswordChangeForm(user=request.user)
        #imgform = UploadFileForm()
    context = {
        'form': form,
    }
    return render(request, "profile.html", context)
예제 #9
0
def edit(request):
    """
    Change password only, for now...
    """
    if request.POST:
        form = PasswordChangeForm(request.user, request.POST)
        if form.is_valid():
            instance = form.save()
            return HttpResponse('')
    else:
        form = PasswordChangeForm(user=request.user)
    return render_to_response('users/change_password.html', {'form': form}, context_instance=RequestContext(request))
예제 #10
0
파일: views.py 프로젝트: Potrik98/scirius
def editview(request, action):
    if request.user.is_authenticated():
        request_data = None
        context = {}

        if request.method == 'POST':
            request_data = request.POST

        if action == 'password':
            form = PasswordChangeForm(user=request.user, data=request_data)
            context = {'form': form, 'action': 'Change password', 'edition': True}
        elif action == 'settings':
            tz = 'UTC'
            if hasattr(request.user, 'sciriususer'):
                tz = request.user.sciriususer.timezone
            initial = {'timezone': tz}

            if request.user.is_superuser:
                form = UserSettingsForm(request_data, instance=request.user, initial=initial)
            else:
                form = NormalUserSettingsForm(request_data, instance=request.user, initial=initial)

            context = {'form': form, 'action': 'Edit settings for ' + request.user.username, 'edition': True}
        elif action == 'token':
            initial = {}
            token = Token.objects.filter(user=request.user)
            if len(token):
                initial['token'] = token[0]
            form = TokenForm(request_data, initial=initial)
            context = {'form': form, 'action': 'User token', 'edition': True}
        else:
            context = {'action': 'User settings', 'edition': False}

        if request.method == 'POST':
            orig_superuser = request.user.is_superuser
            orig_staff = request.user.is_staff
            if form.is_valid():
                if action == 'token':
                    current_tokens = Token.objects.filter(user=request.user)
                    for token in current_tokens:
                        token.delete()
                    Token.objects.create(user=request.user)

                    UserAction.create(
                        action_type='edit_user_token',
                        comment=form.cleaned_data['comment'],
                        user=request.user,
                        other_user=request.user
                    )
                    return redirect('accounts_edit', action='token')

                context['edition'] = False
                context['action'] = 'User settings'

                ruser = form.save(commit = False)
                if not orig_superuser:
                    ruser.is_superuser = False
                    ruser.is_staff = orig_staff
                ruser.save()
                if action == 'password':
                    update_session_auth_hash(request, ruser)

                    UserAction.create(
                        action_type='edit_user_password',
                        comment=form.cleaned_data['comment'],
                        user=request.user,
                        other_user=request.user
                    )
                if action == 'settings':
                    try:
                        sciriususer = ruser.sciriususer
                        sciriususer.timezone = form.cleaned_data['timezone']
                    except:
                        sciriususer = SciriusUser.objects.create(user = ruser, timezone = form.cleaned_data['timezone'])

                    UserAction.create(
                        action_type='edit_user',
                        comment=form.cleaned_data['comment'],
                        user=request.user,
                        other_user=request.user
                    )
                    sciriususer.save()
        return scirius_render(request, 'accounts/edit.html', context)