def dc_user_profile_sshkey_modal_form(request, username, action): """ Ajax page for adding or deleting SSH keys. """ user = get_edited_user(request, username) if action == 'add': sform = SSHKeyForm(request, None, request.POST) if sform.is_valid(): status = sform.save(action='create', args=(user.username, sform.cleaned_data['name'])) if status == 201: messages.success(request, _('SSH key was successfully saved')) return redirect('dc_user_profile', user.username) return render(request, 'gui/profile/profile_sshkey_form.html', { 'user': user, 'sform': sform }, status=200) elif action == 'delete': res = SSHKeyForm.api_call('delete', None, request, args=(user.username, request.POST.get('name'))) status = res.status_code if status == 200: messages.success(request, _('SSH key was successfully removed')) return redirect('dc_user_profile', user.username) return render(request, 'gui/profile/profile_sshkey_list.html', { 'user': user, 'ssh_keys': user.usersshkey_set.all().order_by('id') }, status=status)
def dc_user_profile(request, username): """ User Profile management. """ user = get_edited_user(request, username, sr=('dc_bound', 'userprofile')) profile = user.userprofile context = collect_view_data(request, 'dc_user_list') context['uform'] = AdminUserForm(request, user, init=True) context['upform'] = AdminUserProfileForm(request, profile, init=True) context['pform'] = AdminChangePasswordForm(user) context['sform'] = SSHKeyForm(request, user) context['user'] = user context['profile'] = profile context['ssh_keys'] = user.usersshkey_set.all().order_by('id') if not request.user.is_staff: context['disabled_api_key'] = True return render(request, 'gui/dc/profile/user_profile.html', context)
def index(request): """ User profile page. """ user = request.user profile = user.userprofile context = collect_view_data(request, 'profile') context['user'] = user context['profile'] = profile context['uform'] = UserForm(request, request.user, init=True) context['upform'] = UserProfileForm(request, profile, init=True) context['pform'] = ChangePasswordForm(request.user) context['sform'] = SSHKeyForm(request, request.user) context['ssh_keys'] = request.user.usersshkey_set.all().order_by('id') context['email_aform'] = EmailActivationProfileForm(profile.email_token) context['phone_aform'] = PhoneActivationProfileForm(profile.phone_token) return render(request, 'gui/profile/profile.html', context)