aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/app/settings.py4
-rw-r--r--app/app/urls.py11
-rw-r--r--app/config-example.yml2
-rw-r--r--app/dispatch/templates/dispatch/drivers/edit.html6
-rw-r--r--app/dispatch/templates/registration/activate.html12
-rw-r--r--app/dispatch/templates/registration/activation_complete.html14
-rw-r--r--app/dispatch/templates/registration/activation_email.txt4
-rw-r--r--app/dispatch/templates/registration/activation_email_subject.txt1
-rw-r--r--app/dispatch/templates/registration/registration_complete.html12
-rw-r--r--app/dispatch/templates/registration/registration_form.html23
-rw-r--r--app/dispatchAuth/admin.py4
-rw-r--r--app/dispatchAuth/forms.py11
-rw-r--r--app/dispatchAuth/models.py6
-rw-r--r--app/requirements.txt1
14 files changed, 107 insertions, 4 deletions
diff --git a/app/app/settings.py b/app/app/settings.py
index 7e41f74..e19afa5 100644
--- a/app/app/settings.py
+++ b/app/app/settings.py
@@ -57,7 +57,11 @@ if CONFIG.get('SET_EMAIL'):
EMAIL_HOST_USER = CONFIG['EMAIL_HOST_USER']
EMAIL_PORT = CONFIG['EMAIL_PORT']
EMAIL_USE_TLS = CONFIG['EMAIL_USE_TLS']
+else:
+ print("WARNING EMAIL SETTINGS NOT APPLIED. CHECK CONFIG")
+
+ACCOUNT_ACTIVATION_DAYS = CONFIG['ACCOUNT_ACTIVATION_DAYS']
AUTH_USER_MODEL = 'dispatchAuth.User'
diff --git a/app/app/urls.py b/app/app/urls.py
index 19b4449..78d4239 100644
--- a/app/app/urls.py
+++ b/app/app/urls.py
@@ -18,7 +18,18 @@ from django.conf.urls import include, url
from django.conf.urls.static import static
from django.contrib import admin
+from registration.backends.hmac.views import RegistrationView
+from dispatchAuth.forms import UserForm
+
urlpatterns = [
url(r'^', include('dispatch.urls')),
+ # Override registration form
+ url(r'^accounts/register/$',
+ RegistrationView.as_view(
+ form_class=UserForm
+ ),
+ name='registration_register',
+ ),
+ url(r'^accounts/', include('registration.backends.hmac.urls')),
url(r'^admin/', admin.site.urls),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
diff --git a/app/config-example.yml b/app/config-example.yml
index 7954e08..361ae28 100644
--- a/app/config-example.yml
+++ b/app/config-example.yml
@@ -35,7 +35,7 @@ SECRET_KEY: 'h$r_bwlp@#h#y#%&qhw-n=gb2%wva1d_h65+o94u&!a#%iv&lo'
admins:
- 'bob@example.com'
-
+ACCOUNT_ACTIVATION_DAYS: 7
# Email settings won't be loaded from this file if this is false
SET_EMAIL: False
diff --git a/app/dispatch/templates/dispatch/drivers/edit.html b/app/dispatch/templates/dispatch/drivers/edit.html
index ef27923..35dc15f 100644
--- a/app/dispatch/templates/dispatch/drivers/edit.html
+++ b/app/dispatch/templates/dispatch/drivers/edit.html
@@ -10,7 +10,11 @@
</div>
<form action="" method="post">{% csrf_token %}
- {{ form.as_p }}
+ {% for field in form %}
+ <p>
+ {{field.label_tag}} {{field}}
+ </p>
+ {% endfor %}
<input type="submit" class="btn blue" value="Update" />
</form>
{% endblock %}
diff --git a/app/dispatch/templates/registration/activate.html b/app/dispatch/templates/registration/activate.html
new file mode 100644
index 0000000..f8da830
--- /dev/null
+++ b/app/dispatch/templates/registration/activate.html
@@ -0,0 +1,12 @@
+{% extends 'dispatch/base.html' %}
+
+{% block title %}Register{% endblock %}
+
+{% block content %}
+<div class="row">
+ <div class="col s12">
+ <p>Sorry, we do not have an activation key that matches what you've
+ provided. Please submit a new registration request.</p> </div>
+</div>
+
+{% endblock %}
diff --git a/app/dispatch/templates/registration/activation_complete.html b/app/dispatch/templates/registration/activation_complete.html
new file mode 100644
index 0000000..6f8929e
--- /dev/null
+++ b/app/dispatch/templates/registration/activation_complete.html
@@ -0,0 +1,14 @@
+{% extends 'dispatch/base.html' %}
+
+{% block title %}Register{% endblock %}
+
+{% block content %}
+<div class="row">
+ <div class="col s12">
+ <p>
+ Your Account activation was successful!
+ </p>
+ </div>
+</div>
+
+{% endblock %}
diff --git a/app/dispatch/templates/registration/activation_email.txt b/app/dispatch/templates/registration/activation_email.txt
new file mode 100644
index 0000000..66b7b05
--- /dev/null
+++ b/app/dispatch/templates/registration/activation_email.txt
@@ -0,0 +1,4 @@
+Activation key: {{activation_key}}
+Site: {{site}}
+Expiration date: {{expiration_days}}
+User model {{user}}
diff --git a/app/dispatch/templates/registration/activation_email_subject.txt b/app/dispatch/templates/registration/activation_email_subject.txt
new file mode 100644
index 0000000..5c9c72f
--- /dev/null
+++ b/app/dispatch/templates/registration/activation_email_subject.txt
@@ -0,0 +1 @@
+Activation request for {{user.first_name}} {{user.last_name}} at {{site}}
diff --git a/app/dispatch/templates/registration/registration_complete.html b/app/dispatch/templates/registration/registration_complete.html
new file mode 100644
index 0000000..579b914
--- /dev/null
+++ b/app/dispatch/templates/registration/registration_complete.html
@@ -0,0 +1,12 @@
+{% extends 'dispatch/base.html' %}
+
+{% block title %}Register{% endblock %}
+
+{% block content %}
+<div class="row">
+ <div class="col s12">
+ <p>A registration request has been sent. Please check the email you provided for further instructions</p>
+ </div>
+</div>
+
+{% endblock %}
diff --git a/app/dispatch/templates/registration/registration_form.html b/app/dispatch/templates/registration/registration_form.html
new file mode 100644
index 0000000..eda9294
--- /dev/null
+++ b/app/dispatch/templates/registration/registration_form.html
@@ -0,0 +1,23 @@
+{% extends 'dispatch/base.html' %}
+
+{% block title %}Register{% endblock %}
+
+{% block content %}
+<div class="row">
+ <div class="col s12">
+ <p>Send a registration request with the following form</p>
+ </div>
+</div>
+
+<form action="" method="post">{% csrf_token %}
+ {% for field in form %}
+ <p>
+ {{field.label_tag}} {{field}}
+ </p>
+ {% endfor %}
+ <div class="right-align">
+ <input type="submit" class="btn blue" value="Submit" />
+ </div>
+</form>
+
+{% endblock %}
diff --git a/app/dispatchAuth/admin.py b/app/dispatchAuth/admin.py
index 38ec7a6..d65390c 100644
--- a/app/dispatchAuth/admin.py
+++ b/app/dispatchAuth/admin.py
@@ -1,7 +1,7 @@
from django import forms
from django.contrib import admin
from django.contrib.auth.models import Group
-from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
+from django.contrib.auth.admin import UserAdmin as BaseUserAdmin, UserAdmin
from django.contrib.auth.forms import ReadOnlyPasswordHashField
# Register your models here.
@@ -55,7 +55,7 @@ class UserChangeForm(forms.ModelForm):
return self.initial["password"]
-class UserAdmin(BaseUserAdmin):
+class UserAdmin(UserAdmin):
# The forms to add and change user instances
form = UserChangeForm
add_form = UserCreationForm
diff --git a/app/dispatchAuth/forms.py b/app/dispatchAuth/forms.py
new file mode 100644
index 0000000..99781f7
--- /dev/null
+++ b/app/dispatchAuth/forms.py
@@ -0,0 +1,11 @@
+from registration.forms import RegistrationForm
+from .models import User
+
+
+class UserForm(RegistrationForm):
+ # fields = ['email', 'first_name', 'last_name']
+ # model = User
+
+ class Meta:
+ fields = ['email', 'first_name', 'last_name']
+ model = User
diff --git a/app/dispatchAuth/models.py b/app/dispatchAuth/models.py
index 49e0a41..3132f1d 100644
--- a/app/dispatchAuth/models.py
+++ b/app/dispatchAuth/models.py
@@ -1,4 +1,5 @@
from django.contrib.auth.models import AbstractUser, AbstractBaseUser, PermissionsMixin, BaseUserManager
+from django.core.mail import send_mail
from django.core.urlresolvers import reverse
from django.db import models
@@ -66,6 +67,11 @@ class User(PermissionsMixin, AbstractBaseUser):
def __str__(self):
return self.email
+ def email_user(self, subject, message, from_email=None, **kwargs):
+ """Send an email to this user."""
+ send_mail(subject, message, from_email, [self.email], **kwargs)
+
+
@property
def is_staff(self):
return self.is_superuser
diff --git a/app/requirements.txt b/app/requirements.txt
index 54570ed..32af6d8 100644
--- a/app/requirements.txt
+++ b/app/requirements.txt
@@ -9,3 +9,4 @@ pytz==2017.2
PyYAML==3.12
six==1.10.0
mysqlclient==1.3.12
+git+git://github.com/ubernostrum/django-registration@1347aeb7347a62b2dc7ba1a225d3a1cd031a4b42