diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 2b90ec9b2bccaf0334827acd7c25de3bd6a12110..e15af8b770890908988c3219e79a5df9c1778fe0 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,17 +2,10 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="3a000256-1023-4a19-a046-bde25cb853cc" name="Default" comment="">
-      <change afterPath="$PROJECT_DIR$/.idea/webResources.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/schoolapps/timetable/templates/timetable/quicklaunch.html" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/schoolapps/timetable/templates/timetable/substitution.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/modules.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/school-apps.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/school-apps.iml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/schoolapps/static/common/style.css" beforeDir="false" afterPath="$PROJECT_DIR$/schoolapps/static/common/style.css" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/schoolapps/templates/partials/header.html" beforeDir="false" afterPath="$PROJECT_DIR$/schoolapps/templates/partials/header.html" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/schoolapps/timetable/urls.py" beforeDir="false" afterPath="$PROJECT_DIR$/schoolapps/timetable/urls.py" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/schoolapps/timetable/views.py" beforeDir="false" afterPath="$PROJECT_DIR$/schoolapps/timetable/views.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/schoolapps/schoolapps/example_secure_settings.py" beforeDir="false" afterPath="$PROJECT_DIR$/schoolapps/schoolapps/example_secure_settings.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/schoolapps/schoolapps/settings.py" beforeDir="false" afterPath="$PROJECT_DIR$/schoolapps/schoolapps/settings.py" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="TRACKING_ENABLED" value="true" />
@@ -32,17 +25,17 @@
       <file leaf-file-name="secure_settings.py" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/schoolapps/schoolapps/secure_settings.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="204">
-              <caret line="12" column="22" selection-start-line="12" selection-start-column="22" selection-end-line="12" selection-end-column="22" />
+            <state relative-caret-position="391">
+              <caret line="23" column="38" lean-forward="true" selection-start-line="23" selection-start-column="38" selection-end-line="23" selection-end-column="38" />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="settings.py" pinned="false" current-in-tab="false">
+      <file leaf-file-name="settings.py" pinned="false" current-in-tab="true">
         <entry file="file://$PROJECT_DIR$/schoolapps/schoolapps/settings.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="303">
-              <caret line="134" column="24" selection-start-line="134" selection-start-column="24" selection-end-line="134" selection-end-column="24" />
+            <state relative-caret-position="187">
+              <caret line="158" column="8" lean-forward="true" selection-start-line="158" selection-start-column="8" selection-end-line="158" selection-end-column="8" />
               <folding>
                 <element signature="e#309#318#0" expanded="true" />
               </folding>
@@ -54,7 +47,7 @@
         <entry file="file://$PROJECT_DIR$/schoolapps/timetable/templates/timetable/substitution.html">
           <provider selected="true" editor-type-id="text-editor">
             <state relative-caret-position="187">
-              <caret line="11" selection-start-line="11" selection-end-line="11" />
+              <caret line="12" selection-start-line="12" selection-end-line="12" />
             </state>
           </provider>
         </entry>
@@ -63,7 +56,7 @@
         <entry file="file://$PROJECT_DIR$/schoolapps/timetable/views.py">
           <provider selected="true" editor-type-id="text-editor">
             <state relative-caret-position="294">
-              <caret line="19" column="27" lean-forward="true" selection-start-line="19" selection-start-column="27" selection-end-line="19" selection-end-column="27" />
+              <caret line="19" column="27" selection-start-line="19" selection-start-column="27" selection-end-line="19" selection-end-column="27" />
               <folding>
                 <element signature="e#0#57#0" expanded="true" />
               </folding>
@@ -71,11 +64,11 @@
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="quicklaunch.html" pinned="false" current-in-tab="true">
+      <file leaf-file-name="quicklaunch.html" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/schoolapps/timetable/templates/timetable/quicklaunch.html">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="170">
-              <caret line="10" column="43" lean-forward="true" selection-start-line="10" selection-start-column="43" selection-end-line="10" selection-end-column="43" />
+            <state>
+              <caret column="36" selection-start-column="36" selection-end-column="36" />
             </state>
           </provider>
         </entry>
@@ -84,7 +77,7 @@
         <entry file="file://$PROJECT_DIR$/schoolapps/static/common/style.css">
           <provider selected="true" editor-type-id="text-editor">
             <state relative-caret-position="583">
-              <caret line="137" column="15" lean-forward="true" selection-start-line="137" selection-start-column="15" selection-end-line="137" selection-end-column="15" />
+              <caret line="136" column="15" selection-start-line="136" selection-start-column="15" selection-end-line="136" selection-end-column="15" />
             </state>
           </provider>
         </entry>
@@ -102,7 +95,7 @@
         <entry file="file://$PROJECT_DIR$/schoolapps/templates/partials/header.html">
           <provider selected="true" editor-type-id="text-editor">
             <state relative-caret-position="1399">
-              <caret line="109" column="16" lean-forward="true" selection-start-line="109" selection-start-column="16" selection-end-line="109" selection-end-column="16" />
+              <caret line="109" column="16" selection-start-line="109" selection-start-column="16" selection-end-line="109" selection-end-column="16" />
             </state>
           </provider>
         </entry>
@@ -110,8 +103,8 @@
       <file leaf-file-name="example_secure_settings.py" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/schoolapps/schoolapps/example_secure_settings.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="340">
-              <caret line="20" column="35" selection-start-line="20" selection-start-column="35" selection-end-line="20" selection-end-column="35" />
+            <state relative-caret-position="476">
+              <caret line="28" lean-forward="true" selection-start-line="28" selection-end-line="31" selection-end-column="39" />
             </state>
           </provider>
         </entry>
@@ -120,8 +113,8 @@
         <entry file="file://$PROJECT_DIR$/README.md">
           <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
             <state split_layout="SPLIT">
-              <first_editor relative-caret-position="373">
-                <caret line="39" column="18" selection-start-line="39" selection-start-column="18" selection-end-line="39" selection-end-column="18" />
+              <first_editor relative-caret-position="340">
+                <caret line="20" column="102" selection-start-line="20" selection-start-column="102" selection-end-line="20" selection-end-column="102" />
               </first_editor>
               <second_editor />
             </state>
@@ -204,16 +197,16 @@
         <option value="$PROJECT_DIR$/schoolapps/templates/mail/notification.html" />
         <option value="$PROJECT_DIR$/schoolapps/aub/views.py" />
         <option value="$PROJECT_DIR$/.gitignore" />
-        <option value="$PROJECT_DIR$/schoolapps/schoolapps/secure_settings.py" />
-        <option value="$PROJECT_DIR$/schoolapps/schoolapps/example_secure_settings.py" />
-        <option value="$PROJECT_DIR$/README.md" />
-        <option value="$PROJECT_DIR$/schoolapps/schoolapps/settings.py" />
         <option value="$PROJECT_DIR$/schoolapps/timetable/templates/timetable/substitution.html" />
         <option value="$PROJECT_DIR$/schoolapps/timetable/views.py" />
         <option value="$PROJECT_DIR$/schoolapps/templates/partials/header.html" />
         <option value="$PROJECT_DIR$/schoolapps/timetable/urls.py" />
         <option value="$PROJECT_DIR$/schoolapps/static/common/style.css" />
         <option value="$PROJECT_DIR$/schoolapps/timetable/templates/timetable/quicklaunch.html" />
+        <option value="$PROJECT_DIR$/README.md" />
+        <option value="$PROJECT_DIR$/schoolapps/schoolapps/example_secure_settings.py" />
+        <option value="$PROJECT_DIR$/schoolapps/schoolapps/settings.py" />
+        <option value="$PROJECT_DIR$/schoolapps/schoolapps/secure_settings.py" />
       </list>
     </option>
   </component>
@@ -677,21 +670,27 @@
       <option name="project" value="LOCAL" />
       <updated>1524911299889</updated>
     </task>
-    <option name="localTasksCounter" value="37" />
+    <task id="LOCAL-00037" summary="Add a quicklaunch with shortcodes for timetable | Add a page for substitutions (without code)">
+      <created>1526737919793</created>
+      <option name="number" value="00037" />
+      <option name="presentableId" value="LOCAL-00037" />
+      <option name="project" value="LOCAL" />
+      <updated>1526737919793</updated>
+    </task>
+    <option name="localTasksCounter" value="38" />
     <servers />
   </component>
   <component name="ToolWindowManager">
     <frame x="-3" y="33" width="1926" height="1041" extended-state="6" />
-    <editor active="true" />
     <layout>
       <window_info anchor="bottom" id="TODO" order="6" />
-      <window_info anchor="bottom" id="Event Log" order="7" sideWeight="0.50053364" side_tool="true" visible="true" weight="0.23710209" />
+      <window_info anchor="bottom" id="Event Log" order="7" sideWeight="0.5010672" side_tool="true" visible="true" weight="0.23710209" />
       <window_info anchor="bottom" id="Database Changes" order="8" />
       <window_info anchor="bottom" id="Version Control" order="10" weight="0.27083334" />
       <window_info anchor="bottom" id="Python Console" order="8" weight="0.3294509" />
-      <window_info anchor="bottom" id="Run" order="2" sideWeight="0.4994664" weight="0.23710209" />
+      <window_info active="true" anchor="bottom" id="Run" order="2" sideWeight="0.49893278" visible="true" weight="0.23710209" />
       <window_info anchor="bottom" id="Terminal" order="9" />
-      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.2620064" />
+      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.2620064" />
       <window_info anchor="bottom" id="Docker" order="11" show_stripe_button="false" />
       <window_info anchor="right" id="Database" order="3" />
       <window_info anchor="bottom" id="Find" order="1" sideWeight="0.4994664" weight="0.32930845" />
@@ -718,7 +717,6 @@
     <option name="myLimit" value="2678400000" />
   </component>
   <component name="VcsManagerConfiguration">
-    <MESSAGE value="Translate login/logout | Comment header" />
     <MESSAGE value="Add dashboard with last activities (look at README)" />
     <MESSAGE value="Add dashboard with last activities (look at README) [ADD UNVERSIONED FILES, MISTAKE]" />
     <MESSAGE value="Add notifications to dashboard" />
@@ -743,7 +741,8 @@
     <MESSAGE value="First notification with email in AUB" />
     <MESSAGE value="Finish AUB notification" />
     <MESSAGE value="Change infrastructure for server" />
-    <option name="LAST_COMMIT_MESSAGE" value="Change infrastructure for server" />
+    <MESSAGE value="Add a quicklaunch with shortcodes for timetable | Add a page for substitutions (without code)" />
+    <option name="LAST_COMMIT_MESSAGE" value="Add a quicklaunch with shortcodes for timetable | Add a page for substitutions (without code)" />
     <option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="true" />
     <option name="REARRANGE_BEFORE_PROJECT_COMMIT" value="true" />
   </component>
@@ -1004,27 +1003,10 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/schoolapps/schoolapps/secure_settings.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="204">
-          <caret line="12" column="22" selection-start-line="12" selection-start-column="22" selection-end-line="12" selection-end-column="22" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/schoolapps/schoolapps/settings.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="303">
-          <caret line="134" column="24" selection-start-line="134" selection-start-column="24" selection-end-line="134" selection-end-column="24" />
-          <folding>
-            <element signature="e#309#318#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/schoolapps/timetable/views.py">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="294">
-          <caret line="19" column="27" lean-forward="true" selection-start-line="19" selection-start-column="27" selection-end-line="19" selection-end-column="27" />
+          <caret line="19" column="27" selection-start-line="19" selection-start-column="27" selection-end-line="19" selection-end-column="27" />
           <folding>
             <element signature="e#0#57#0" expanded="true" />
           </folding>
@@ -1034,7 +1016,7 @@
     <entry file="file://$PROJECT_DIR$/schoolapps/timetable/templates/timetable/substitution.html">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="187">
-          <caret line="11" selection-start-line="11" selection-end-line="11" />
+          <caret line="12" selection-start-line="12" selection-end-line="12" />
         </state>
       </provider>
     </entry>
@@ -1045,42 +1027,59 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/schoolapps/schoolapps/example_secure_settings.py">
+    <entry file="file://$PROJECT_DIR$/schoolapps/static/common/style.css">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="340">
-          <caret line="20" column="35" selection-start-line="20" selection-start-column="35" selection-end-line="20" selection-end-column="35" />
+        <state relative-caret-position="583">
+          <caret line="136" column="15" selection-start-line="136" selection-start-column="15" selection-end-line="136" selection-end-column="15" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/schoolapps/templates/partials/header.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1399">
+          <caret line="109" column="16" selection-start-line="109" selection-start-column="16" selection-end-line="109" selection-end-column="16" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/schoolapps/timetable/templates/timetable/quicklaunch.html">
+      <provider selected="true" editor-type-id="text-editor">
+        <state>
+          <caret column="36" selection-start-column="36" selection-end-column="36" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/README.md">
       <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
         <state split_layout="SPLIT">
-          <first_editor relative-caret-position="373">
-            <caret line="39" column="18" selection-start-line="39" selection-start-column="18" selection-end-line="39" selection-end-column="18" />
+          <first_editor relative-caret-position="340">
+            <caret line="20" column="102" selection-start-line="20" selection-start-column="102" selection-end-line="20" selection-end-column="102" />
           </first_editor>
           <second_editor />
         </state>
       </provider>
       <provider editor-type-id="text-editor" />
     </entry>
-    <entry file="file://$PROJECT_DIR$/schoolapps/static/common/style.css">
+    <entry file="file://$PROJECT_DIR$/schoolapps/schoolapps/example_secure_settings.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="583">
-          <caret line="137" column="15" lean-forward="true" selection-start-line="137" selection-start-column="15" selection-end-line="137" selection-end-column="15" />
+        <state relative-caret-position="476">
+          <caret line="28" lean-forward="true" selection-start-line="28" selection-end-line="31" selection-end-column="39" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/schoolapps/templates/partials/header.html">
+    <entry file="file://$PROJECT_DIR$/schoolapps/schoolapps/secure_settings.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1399">
-          <caret line="109" column="16" lean-forward="true" selection-start-line="109" selection-start-column="16" selection-end-line="109" selection-end-column="16" />
+        <state relative-caret-position="391">
+          <caret line="23" column="38" lean-forward="true" selection-start-line="23" selection-start-column="38" selection-end-line="23" selection-end-column="38" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/schoolapps/timetable/templates/timetable/quicklaunch.html">
+    <entry file="file://$PROJECT_DIR$/schoolapps/schoolapps/settings.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="170">
-          <caret line="10" column="43" lean-forward="true" selection-start-line="10" selection-start-column="43" selection-end-line="10" selection-end-column="43" />
+        <state relative-caret-position="187">
+          <caret line="158" column="8" lean-forward="true" selection-start-line="158" selection-start-column="8" selection-end-line="158" selection-end-column="8" />
+          <folding>
+            <element signature="e#309#318#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
diff --git a/README.md b/README.md
index 4481cfb76bcda77c0e6fb798cf638c9a45f17de2..07c5db9fd6d4f7fc3223ec8ac9a69b6842ba0a24 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,7 @@ keine
 ## Installation
 ### Grundsystem
 ```
-apt install python3 python3-dev python3-pip  git mariadb-server python3-venv
+apt install python3 python3-dev python3-pip  git mariadb-server python3-venv libldap2-dev libsasl2-dev
 ```
 
 ### MySQL-Datenbank
@@ -39,7 +39,7 @@ python3 -m venv env
 source env/bin/activate
 pip install mysqlclient
 pip install django
-pip install django-cors-headers 
+pip install django-auth-ldap
 ```
 - `example_secure_settings.py` zu `secure_settings.py` kopieren und anpassen
 
diff --git a/schoolapps/schoolapps/example_secure_settings.py b/schoolapps/schoolapps/example_secure_settings.py
index 413ee94a2627a2c7360e73d8fdca9122ddaa424a..00cc83d5bbf9a5d6f97fd72d0023da40e3c5a99e 100644
--- a/schoolapps/schoolapps/example_secure_settings.py
+++ b/schoolapps/schoolapps/example_secure_settings.py
@@ -26,3 +26,7 @@ DATABASES = {
         'PORT': ''
     }
 }
+
+# LDAP
+AUTH_LDAP_BIND_DN = "cn=django-agent,dc=example,dc=com"
+AUTH_LDAP_BIND_PASSWORD = "phlebotinum"
\ No newline at end of file
diff --git a/schoolapps/schoolapps/settings.py b/schoolapps/schoolapps/settings.py
index 8d97f7b1f6d234dad99e8ccb15611667c72ccbf2..ce60da1ca95959639b416d0a8b516b1718ca48d2 100644
--- a/schoolapps/schoolapps/settings.py
+++ b/schoolapps/schoolapps/settings.py
@@ -11,6 +11,8 @@ https://docs.djangoproject.com/en/2.0/ref/settings/
 """
 
 import os
+import ldap
+from django_auth_ldap.config import LDAPSearch, GroupOfNamesType
 from .secure_settings import *
 
 # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
@@ -63,7 +65,7 @@ TEMPLATES = [
         'BACKEND': 'django.template.backends.django.DjangoTemplates',
         'DIRS': [
             os.path.join(BASE_DIR, 'templates')
-	],
+        ],
         'APP_DIRS': True,
         'OPTIONS': {
             'context_processors': [
@@ -151,3 +153,52 @@ EMAIL_USE_TLS = True
 # TIMETABLE
 TIMETABLE_WIDTH = 5
 TIMETABLE_HEIGHT = 10
+
+########
+# LDAP #
+########
+
+# Baseline configuration.
+AUTH_LDAP_SERVER_URI = "ldap://127.0.0.1"
+AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=users,dc=example,dc=com",
+                                   ldap.SCOPE_SUBTREE, "(uid=%(user)s)")
+# or perhaps:
+# AUTH_LDAP_USER_DN_TEMPLATE = "uid=%(user)s,ou=users,dc=example,dc=com"
+
+# Set up the basic group parameters.
+AUTH_LDAP_GROUP_SEARCH = LDAPSearch("dc=skole,dc=skolelinux,dc=no", ldap.SCOPE_SUBTREE, "(objectClass=groupOfNames)")
+AUTH_LDAP_GROUP_TYPE = GroupOfNamesType(name_attr="ou")
+
+# Simple group restrictions
+# AUTH_LDAP_REQUIRE_GROUP = "cn=enabled,ou=django,ou=groups,dc=example,dc=com"
+# AUTH_LDAP_DENY_GROUP = "cn=disabled,ou=django,ou=groups,dc=example,dc=com"
+
+# Populate the Django user from the LDAP directory.
+AUTH_LDAP_USER_ATTR_MAP = {
+    "first_name": "givenName",
+    "last_name": "sn",
+    "email": "mail"
+}
+
+# AUTH_LDAP_USER_FLAGS_BY_GROUP = {
+#     "is_active": "cn=active,ou=django,ou=groups,dc=example,dc=com",
+#     "is_staff": "cn=staff,ou=django,ou=groups,dc=example,dc=com",
+#     "is_superuser": "cn=superuser,ou=django,ou=groups,dc=example,dc=com"
+# }
+
+# This is the default, but I like to be explicit.
+AUTH_LDAP_ALWAYS_UPDATE_USER = True
+
+# Use LDAP group membership to calculate group permissions.
+AUTH_LDAP_FIND_GROUP_PERMS = True
+
+# Cache group memberships for an hour to minimize LDAP traffic
+AUTH_LDAP_CACHE_GROUPS = True
+AUTH_LDAP_GROUP_CACHE_TIMEOUT = 3600
+
+# Keep ModelBackend around for per-user permissions and maybe a local
+# superuser.
+AUTHENTICATION_BACKENDS = (
+    'django_auth_ldap.backend.LDAPBackend',
+    'django.contrib.auth.backends.ModelBackend',
+)