From 5a8aab3920a5fcf630531a342b2986c20d630b88 Mon Sep 17 00:00:00 2001
From: frekk <frekk@ucc.asn.au>
Date: Sun, 30 Dec 2018 18:00:52 +0800
Subject: [PATCH] override admin site login view with our custom one (even
 though it's uglier)

---
 gms/gms/urls.py                    |  2 +-
 gms/memberdb/templates/base.html   | 11 +++++++++--
 gms/memberdb/templates/login.html  | 12 ++++++++----
 gms/memberdb/templates/logout.html | 26 ++++++++++++++++++++++++++
 gms/memberdb/urls.py               | 10 ++++++++--
 5 files changed, 52 insertions(+), 9 deletions(-)
 create mode 100644 gms/memberdb/templates/logout.html

diff --git a/gms/gms/urls.py b/gms/gms/urls.py
index e3cb464..1a35ea5 100644
--- a/gms/gms/urls.py
+++ b/gms/gms/urls.py
@@ -3,6 +3,6 @@ from django.urls import path, include
 from . import admin
 
 urlpatterns = [
-    path('admin/', admin.site.urls),
     path('', include('memberdb.urls')),
+    path('admin/', admin.site.urls),
 ]
diff --git a/gms/memberdb/templates/base.html b/gms/memberdb/templates/base.html
index 0f67b9f..785fe48 100644
--- a/gms/memberdb/templates/base.html
+++ b/gms/memberdb/templates/base.html
@@ -5,6 +5,7 @@
 <title>{% block title %}{% endblock %}</title>
 <link rel="stylesheet" type="text/css" href="{% static "shared.css" %}">
 <link rel="stylesheet" type="text/css" href="{% static "main.css" %}">
+<link rel="shortcut icon" type="image/png" href="{% static 'ucc-logo.png' %}"/>
 {% block extrahead %}{% endblock %}
 {% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE">{% endblock %}
 </head>
@@ -26,10 +27,16 @@
             
             {# fancy automatic navbar thing from https://stackoverflow.com/questions/39639264 #}
             {% with url_name=request.resolver_match.url_name %}
-            <a class="navtab {% if url_name == 'home' %}active{% endif %}" href="{% url "memberdb:home" %}">Member home</a>
+            {% if not request.user.is_authenticated %}
+            <a class="navtab {% if url_name == 'home' %}active{% endif %}" href="{% url "memberdb:home" %}">Login</a>
             <a class="navtab {% if url_name == 'register' %}active{% endif %}" href="{% url "memberdb:register" %}">Register</a>
+            {% else %}
+            <a class="navtab {% if url_name == 'home' %}active{% endif %}" href="{% url "memberdb:home" %}">Member home</a>
             <a class="navtab {% if url_name == 'renew' %}active{% endif %}" href="{% url "memberdb:renew" %}">Renew membership</a>
+            {% endif %}
+            {% if request.user.is_staff %}
             <a class="navtab" href="{% url "admin:index" %}">Admin site</a>
+            {% endif %}
             {% endwith %}
         </nav>
         {% endblock %}
@@ -38,7 +45,7 @@
 
     <!-- Content -->
     <div id="content">
-        {% block content_title %}{% if title %}<h1>{{ title }}</h1>{% endif %}{% endblock %}
+        {% block content_title %}{% endblock %}
         {% block content %}
         {% endblock %}
     </div>
diff --git a/gms/memberdb/templates/login.html b/gms/memberdb/templates/login.html
index d914989..3c2519a 100644
--- a/gms/memberdb/templates/login.html
+++ b/gms/memberdb/templates/login.html
@@ -29,12 +29,16 @@
 {% endfor %}
 {% endif %}
 
+
+<p class="tips">
 {% if user.is_authenticated %}
-<p class="errornote">
-    You are authenticated as {{ user.username }}, but are not authorized to
-    access this page. Would you like to login to a different account?
-</p>
+    You are already logged in as {{ user.username }}.
+    Would you like to login to a different account?
+{% else %}
+    <b>Please enter your UCC username and password below.</b> <br><br>
+    If you do not have a UCC account yet, please apply for a membership by going to the <a href="{% url 'memberdb:register' %}">registration page</a>.
 {% endif %}
+</p>
 
 <form action="{% url 'memberdb:login' %}" method="post" id="login-form">
   {% csrf_token %}
diff --git a/gms/memberdb/templates/logout.html b/gms/memberdb/templates/logout.html
new file mode 100644
index 0000000..3bda9fa
--- /dev/null
+++ b/gms/memberdb/templates/logout.html
@@ -0,0 +1,26 @@
+{% extends "base.html" %}
+{% load static %}
+
+{% block title %}UCC Member Logout{% endblock %}
+
+{% block extrahead %}
+{{ block.super }}
+<link rel="stylesheet" type="text/css" href="{% static "login.css" %}">
+{{ form.media }}
+{% endblock %}
+
+{% block content_title %}<h1>Logout</h1>{% endblock %}
+
+{% block content %}
+
+<div class="form-container">
+
+<p>
+    <b>You are now logged out of MemberDB.</b>
+</p>
+
+<p>
+    <a href="{% url 'memberdb:login' %}">Click here</a> to log back in again.
+</p>
+
+{% endblock %}
\ No newline at end of file
diff --git a/gms/memberdb/urls.py b/gms/memberdb/urls.py
index 1cb8edf..2b04749 100644
--- a/gms/memberdb/urls.py
+++ b/gms/memberdb/urls.py
@@ -2,15 +2,21 @@ from django.urls import path
 from django.contrib.auth import views as auth_views
 
 from . import views
+from .views import MemberHomeView
 from .register import RegisterView, RenewView
 
 app_name = 'memberdb'
 urlpatterns = [
-    path('', views.index, name='index'),
+    path('', MemberHomeView.as_view(), name='home'),
     path('login/', auth_views.LoginView.as_view(template_name='login.html'), name='login'),
+    path('logout/', auth_views.LogoutView.as_view(template_name='logout.html'), name='logout'),
+
+    # override the admin login/logout views
+    path('admin/login/', auth_views.LoginView.as_view(template_name='login.html')),
+    path('admin/logout/', auth_views.LogoutView.as_view(template_name='logout.html')),
+    
     path('register/', RegisterView.as_view(), name='register'),
     path('renew/', RenewView.as_view(), name='renew'),
-    path('home/', views.index, name='home'),
     path('active/', views.getactive, name='actives'),
     #path('<str:username>/', views.info, name='info'),
 ]
\ No newline at end of file
-- 
GitLab