1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Initial push to public repo

This commit is contained in:
Jeremy Stretch
2016-03-01 11:23:03 -05:00
commit 27b289ee3b
281 changed files with 26061 additions and 0 deletions

0
netbox/users/__init__.py Normal file
View File

3
netbox/users/admin.py Normal file
View File

@@ -0,0 +1,3 @@
from django.contrib import admin
# Register your models here.

16
netbox/users/forms.py Normal file
View File

@@ -0,0 +1,16 @@
from django.contrib.auth.forms import AuthenticationForm, PasswordChangeForm as DjangoPasswordChangeForm
from utilities.forms import BootstrapMixin
class LoginForm(AuthenticationForm, BootstrapMixin):
def __init__(self, *args, **kwargs):
super(LoginForm, self).__init__(*args, **kwargs)
self.fields['username'].widget.attrs['placeholder'] = ''
self.fields['password'].widget.attrs['placeholder'] = ''
class PasswordChangeForm(DjangoPasswordChangeForm, BootstrapMixin):
pass

View File

@@ -0,0 +1,14 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.1 on 2016-02-29 18:49
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
]
operations = [
]

View File

3
netbox/users/models.py Normal file
View File

@@ -0,0 +1,3 @@
from django.db import models
# Create your models here.

3
netbox/users/tests.py Normal file
View File

@@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

10
netbox/users/urls.py Normal file
View File

@@ -0,0 +1,10 @@
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^profile/$', views.profile, name='profile'),
url(r'^profile/password/$', views.change_password, name='change_password'),
url(r'^profile/user-key/$', views.userkey, name='userkey'),
url(r'^profile/user-key/edit/$', views.userkey_edit, name='userkey_edit'),
]

117
netbox/users/views.py Normal file
View File

@@ -0,0 +1,117 @@
from django.conf import settings
from django.contrib import messages
from django.contrib.auth import login as auth_login, logout as auth_logout, update_session_auth_hash
from django.contrib.auth.decorators import login_required
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from django.shortcuts import redirect, render, resolve_url
from django.utils.http import is_safe_url
from secrets.forms import UserKeyForm
from secrets.models import UserKey
from .forms import LoginForm, PasswordChangeForm
#
# Login/logout
#
def login(request):
if request.method == 'POST':
form = LoginForm(request, data=request.POST)
if form.is_valid():
# Determine where to direct user after successful login
redirect_to = request.POST.get('next', '')
if not is_safe_url(url=redirect_to, host=request.get_host()):
redirect_to = resolve_url(settings.LOGIN_REDIRECT_URL)
# Authenticate user
auth_login(request, form.get_user())
messages.info(request, "Logged in as {0}.".format(request.user))
return HttpResponseRedirect(redirect_to)
else:
form = LoginForm()
return render(request, 'login.html', {
'form': form,
})
def logout(request):
auth_logout(request)
messages.info(request, "You have logged out.")
return HttpResponseRedirect(reverse('home'))
#
# User profiles
#
@login_required()
def profile(request):
return render(request, 'users/profile.html', {
})
@login_required()
def change_password(request):
if request.method == 'POST':
form = PasswordChangeForm(user=request.user, data=request.POST)
if form.is_valid():
form.save()
update_session_auth_hash(request, form.user)
messages.success(request, "Your password has been changed successfully.")
return redirect('users:profile')
else:
form = PasswordChangeForm(user=request.user)
return render(request, 'users/change_password.html', {
'form': form,
})
@login_required()
def userkey(request):
try:
userkey = UserKey.objects.get(user=request.user)
except UserKey.DoesNotExist:
userkey = None
return render(request, 'users/userkey.html', {
'userkey': userkey,
})
@login_required()
def userkey_edit(request):
try:
userkey = UserKey.objects.get(user=request.user)
except UserKey.DoesNotExist:
userkey = UserKey(user=request.user)
if request.method == 'POST':
form = UserKeyForm(data=request.POST, instance=userkey)
if form.is_valid():
uk = form.save(commit=False)
uk.user = request.user
uk.save()
messages.success(request, "Your user key has been saved.")
return redirect('users:userkey')
else:
form = UserKeyForm(instance=userkey)
return render(request, 'users/userkey_edit.html', {
'userkey': userkey,
'form': form,
})