Projektarbeit Reitvereinmanagementsystem (RVMS) Dokumentation der Anmeldefunktionen

Ähnliche Dokumente
PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

Sessions mit PHP. Annabell Langs Sessions in PHP - Annabell Langs 1

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST

Bedienungshandbuch Obligatorische Prüfung LHR/GBB. (Version 1.1)

Stubbe-CS. Kurssystem. Günter Stubbe. Datum: 19. August 2013

VIDA ADMIN KURZANLEITUNG

NetUSE-SSH-Keymanager 2.12

Website freiburg-bahai.de

Dokumentation: Formmail Datarius 1.5

ÖVSV Mitglieder-Datenbank. Benutzerhandbuch Version 1.2.1

Operator Guide. Operator-Guide 1 / 7 V1.01 / jul.12

Staatlich geprüfte(r) Technische(r) Assistent/in Informationstechnik Laborbericht

PHP-5-Zertifizierung. Block 12 Security.

1. Auflage Mai Kärntner Straße 311, A-8054 Graz, Austria Autor: Claudia Schwarz

SAMMEL DEINE IDENTITÄTEN::: NINA FRANK :: :: WINTERSEMESTER 08 09

PHP Übungsaufgabe 2 1 / 5. Doing Web Apps. PHP Übungsaufgabe 2

INHALTSVERZEICHNIS: 1. ANMELDUNG ÜBER WEBMAIL 2. MAILBOX

telpho10 Update 2.1.6

Script-Upgrade. Vorraussetzungen. Folgende Meldungstypen werden dabei verwendet: Vom Fahrzeug zur Zentrale. Quittungstexte vom Fahrzeug (Type 11.

Handbuch oasebw Seite 1 von 11

Anleitung Registrierung Öffentlicher Benutzer und Bearbeitung Vereins-, Unternehmensverzeichnis und Veranstaltungskalender

webbank+ Handbuch Module & Rechner, Kapitel 1 Version Januar 2015

Hinweise für die Online- Prüfungsanmeldung der Studierenden

Lehrlings- und Fachausbildungsstelle. EDV-Prüfungsprogramm

Dokumentation Softwareprojekt AlumniDatenbank

Bewohnerinnenstatistik ONLINE - Kurzanleitung

JUNG Facility-Pilot Visualisierungs-Server Version 2.2

Kurzbedienungsanleitung für "Foxi's Multi-Agility-Forum"

Alle alltäglichen Aufgaben können auch über das Frontend durchgeführt werden, das in den anderen Anleitungen erläutert wird.

Typo 3 installieren. Schritt 1: Download von Typo3

Dieses Dokument beschreibt, wie Sie Verlinkungen innerhalb von Texten erzeugen können.

WB-Forum Weltenbastlerolympiade Anleitung. WBO-Tool

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Verwendung der Support Webseite

Freischaltung Mobil - TANVerfahren

Hilfe zur Aktivierung des Benutzerkontos für den Zugriff zum Daimler Mitarbeiter-Portal über das Internet

Step by Step Anleitung. Einrichtung Shirt-Shop auf einem Netclusiv Webspace

Pictomat. Embedded Machine Vision. Datenaustausch über FTP-Server IBN INGENIEURBÜRO BERND NEUMANN GMBH. Eichendorffstraße 23 D Kevelaer

Bedienungsanleitung: Anmeldung von Veranstaltungsteilnehmern zur Prüfung

Datenbanken für Online Untersuchungen

Bewerbungsdatenbank auf der Basis von OpenOffice.org Systemvoraussetzungen...3

EAP. Employee Administration Platform

Online-Selbstbedienungsfunktionen für Studierende - Handbuch

Softwaretechnik Teil Webprogrammierung (HTML, PHP) SS2011

KURZANLEITUNG. Für das Demo-DownloadCENTER

Die Online-Tischreservierung punktundpixel.at

Internet for Guests. Interfaces Deutsch. Interfaces Seite 1/14

Das Termin-Vergabe- und Patienten-Zuweisungssystem für Praxen und Kliniken

Die XHOSTPLUS Online Applikation xhonline

FastViewer Remote Edition 2.X

MySQL, phpmyadmin & SQL. Kurzübersicht

TimeMachine. Time CGI. Version 1.5. Stand Dokument: time.odt. Berger EDV Service Tulbeckstr München

CampusNet Webportal SRH Heidelberg

Anleitung. Steigen Sie auf ein und klicken Sie auf "Anmeldung zum Projekt".

Anleitung Registrierung Öffentlicher Benutzer und Bearbeitung Vereins- und Unternehmensverzeichnis

Hierfür sind mit dem Content Management System (CMS) Joomla in Verbindung mit SIGE Pro Inhalte angelegt worden, die genau diesen Zweck erfüllen.

Benutzer/innen- Verwaltung

Prinoth Online - Bedienungsanleitung

Anleitung zur Verwendung der Applikation zur Bezahlung der Maut über das Internet

G-Info Lizenzmanager

Kurzanleitung DKV-IPQ

Nutzerhandbuch Softwaresystem Inspirata. Benutzerhandbuch Softwaresystem Inspirata

Benutzer-Dokumentation Version v2.1 vom

Session Management und Cookies

Erste Schritte nach der Installation

Netxp GmbH Mühlstrasse 4 D Hebertsfelden Telefon Telefax Url:

Wegleitung Homepage ZSHAM

Draft Kurzanleitung Travelmanagement Stand

Hilfe zur Aktivierung des Benutzerkontos für den Zugriff zum Daimler Mitarbeiterportal über das Internet

Benutzerhandbuch. Musikverein Schwadorf Homepage NEU

Dreamwap. Systemanalyse

Handout CMS Pimcore. Bedienung der Webseite für Sektionen

DGNB System Software: Unterschiede zwischen Version 1 und Version 2

b.a.b-technologie gmbh ThemeEditor Dokumentation

Installation SuperWebMailer

Benutzer Verwalten. 1. Benutzer Browser

Anleitung Registrierung Öffentlicher Benutzer und Bearbeitung Vereins- und Unternehmensverzeichnis

Inhaltsverzeichnis. 1. Administrationsoberfläche

Installation und Dokumentation. juris Autologon 3.1

DOKUMENTATION ky2help V 3.6 Servertests

FAQ - Script gaesteform

I P A S W I N Benutzerverwaltung. Berechtigungskonzept für die unterschiedlichen Rechte der Benutzer

Anleitung zum Login. über die Mediteam- Homepage und zur Pflege von Praxisnachrichten

Online-Prüfungs-ABC. ABC Vertriebsberatung GmbH Bahnhofstraße Neckargemünd

Handbuch: PlagScan PlugIn in Moodle 2.X und 3.X für den Nutzer

Alle alltäglichen Aufgaben können auch über das Frontend durchgeführt werden, das in den anderen Anleitungen erläutert wird.

Anleitung für die Online-Bewerbung auf Lehrveranstaltungen und Module über LSF in den BA-Studiengängen (SUL, SGP, SEB, SMK)

Projekt-Dokumentation Entwicklung eines Multiple Choice Spiels als Projekt zur Vorlesung Skriptsprachen (WS2003/2004)

Handbuch. Erster Einstieg, Übersicht und persönliche Stammdaten ändern

Die ersten Schritte in BITE

BESCHREIBUNG. Etikettendruck. CASABLANCAhotelsoftware gmbh - Öde Schönwies - Tirol - Austria

Fachhochschule Fulda. Bedienungsanleitung für QISPOS (Notenverbuchung und Leistungsverbuchung für Prüfer)

Installation Anleitung für JTheseus und MS SQL Server 2000

Sicherheit von PDF-Dateien

Installation des Citrix Receiver v1.2 Manuelles Upgrade auf die neuste Version

Direct Access Suite. Dokumentation

PartnerWeb. Anleitung. Personaladministration online erledigen. Telefon:

Anleitung zur Online-Erfassung der Daten über das Eingabeportal der Info Flora

Transkript:

Projektarbeit Reitvereinmanagementsystem (RVMS) Dokumentation der Anmeldefunktionen Seite 1 von 17

INHALTSVERZEICHNIS Anmeldung zu den einzelnen Modulen...3 Schritt 1: Anmeldung... 3 Schritt 2: Modulmöglichkeiten... 4 Schritt 3: Modulauswahl... 5 Abmelden in den einzelnen Modulen...6 Realisierung der Anmeldung...7 Die Idee... 7 Die Datenbank... 8 Die Umsetzung... 9 Schritt 1: Anmeldung...9 Schritt 2: Modulmöglichkeiten... 11 Schritt 3: Modulauswahl... 13 Realisierung der Abmeldung...14 Anhang:...15 Beispiel... 15 Rechteverteilung... 16 Seite 2 von 17

Anmeldung zu den einzelnen Modulen Schritt 1: Anmeldung Die Anmeldung zu den einzelnen Modulen findet sich auf der Internetseite des Reitverein Pfullendorf. Unter dem Menüpunkt Login ist das Anmeldeformular für die Module: Seite 3 von 17

Schritt 2: Modulmöglichkeiten Nach erfolgreicher Anmeldung sind alle Module aufgeführt für die man mindestens das Recht lesen besitzt. Seite 4 von 17

Schritt 3: Modulauswahl Die einzelnen Module werden dann in einem neuen Fenster geöffnet Seite 5 von 17

Abmelden in den einzelnen Modulen In jedem der einzelnen Module ist dieselbe Logout-Funktion zu integrieren. Durch das anklicken der Logout-Funktion wird der User in allen Modulen abgemeldet. Seite 6 von 17

Realisierung der Anmeldung Die Idee Die Idee war, dass man die Anmeldung zu den einzelnen Modulen zentralisiert Anmeldung über eine zentrale Seite im Internet Auflistung der erlaubten Module Öffnen der Modulen durch Klick in neuem Browser Der Vorteil besteht darin, dass der User eine einheitliche und übersichtliche Anmeldung hat. Die Anmeldung soll hohe Sicherheit bieten, d.h. die Anmeldung funktioniert auch ohne dass Cookies aktiviert sind es ist nicht möglich, die URL mit der Session-ID kopiert an einem anderen Rechner zu verwenden nach bestimmter Zeit wird der User automatisch ausgeloggt Dies soll dadurch geschehen, dass der User mit der Anmeldezeit, der IP-Adresse des Rechners, dem aktuellen Log-Status und mehr beim Anmelden in der Datenbank gespeichert wird. Dann haben wir uns ein Konzept für die Vergabe der Rechte an die einzelnen User, Gruppen und Modulen überlegt: Jeder User muss einer Gruppe angehören. Die Gruppe besitzt die einzelnen Rechte für die einzelnen Module. Eine Person kann in mehreren Gruppen sein. Seite 7 von 17

Die Datenbank Dadurch haben wir dann das folgende Datenbankmodell entwickelt: t_rechte PK,FK1 id beschreibung t_modul PK,FK1 id t_gruppen_rechte PK,FK2 id FK5 modul_id FK6 gruppen_id FK7 rechte_id modul t_gruppen PK id name t_person_gruppe t_personen PK,FK1 id PK id FK3 FK2 PK FK1 personen_id gruppen_id phpwcms_userlog userlog_id logged_user logged_username logged_start logged_change logged_in logged_ip id vorname name strasse postleitzahl ort geburtsdatum telefon handy email passwort login beschreibung versinsmitgl typ einzugsermaechtigung timestamp jugendlich inaktive Seite 8 von 17

Die Umsetzung Schritt 1: Anmeldung Zur Anmeldung werden User-Login und ein Passwort benötigt. Diese werden dann mithilfe einer SQL-Anweisung mit den Einträgen in der Datenbank (Tabelle t_personen) verglichen. Wenn der User mit dem User-Login nicht gefunden wird, erscheint erneut das Login- Formular. Das Passwort ist zu Sicherheit mit MD5 verschlüsselt. Diese Verschlüsselung wurde gewählt, da die 128 Bit langen MD5-Hashes (englisch auch "message digests") normalerweise als 32- stellige Hexadezimalzahl notiert werden. Folgendes Beispiel zeigt eine 59 Byte lange ASCII-Eingabe und den zugehörigen MD5-Hash: md5("franz jagt im komplett verwahrlosten Taxi quer durch Bayern") = a3cca2b2aa1e3b5b3b5aad99a8529074 Eine kleine Änderung der Nachricht erzeugt (mit sehr großer Wahrscheinlichkeit) einen komplett anderen Hash. Mit Frank statt Franz (nur ein Buchstabe verändert) ergibt sich: md5("frank jagt im komplett verwahrlosten Taxi quer durch Bayern") = 7e716d0e702df0505fc72e2b89467910 Der Hash eines Strings der Länge Null ist: md5("") = d41d8cd98f00b204e9800998ecf8427e Dies bietet die für uns nötige Sicherheit. Im Fall einer erfolgreichen Anmeldung werden die benötigten Eigenschaften des Users in die gestartete SESSION geschrieben. Dazu gehört unter anderem die User- ID und der User- Login, die später immer wieder benötigt werden. Als nächster Schritt wird in der Tabelle phpwcms_userlog nach dem angemeldeten User gesucht. Ist dieser vorhanden werden seine Login-Daten aktualisiert. Wenn er in der Tabelle noch nicht vorhanden ist, wird er hinzugefügt. Zu den Login-Daten in der Tabelle phpwcms_usserlog gehören: Feldname logged_user Erklärung Name des Users Seite 9 von 17

logged_username User-Login logged_start Zeitpunkt des Einloggens logged_change Zeitpunkt der letzten Aktualisierung logged_in 1 für eingeloggt 0 für ausgeloggt logged_ip Die IP- Adresse des Rechners des Users Das alles ist in der Datei login.php zu finden. Auszug aus der phpwcms_userlog: Seite 10 von 17

Schritt 2: Modulmöglichkeiten Um die unterschiedlichen Berechtigungen des Users für die einzelnen Module zu realisieren haben wir uns folgendes überlegt: Für jedes Recht wird ein Bit in einer Variablen definiert. Bit Byte-Wert Recht 0 0000001 Lesen 1 0000010 Schreiben 2 0000100 Ändern 3 0001000 Erzeugen 4 0010000 Löschen Sind alle Rechte gesetzt ergibt sich folgender Byte-Wert: 00011111 Sind die Rechte zu lesen, ändern und erzeugen gesetzt, so ergibt sich der Wert 00001101. Jeder User muss wie vorher definiert zu mindestens einer Gruppe gehören. Der Gruppen werden die Rechte für die einzelnen Module zugewiesen. Welche Gruppe welche Rechte hat können sie im Anhang finden. Um nun die Rechte des Users für die einzelnen Module zu bekommen, wird aus der Datenbanktabelle t_person_gruppe ausgelesen zu welchen Gruppen der User gehört. Dann werden aus der Tabelle t_gruppe_rechte die Rechte der Gruppen für die einzelnen Module ausgelesen und in die entsprechenden Variablen aufaddiert $modulrechte["mitglied"] = bit_or($modulrechte["mitglied"], $rechte); $modulrechte["stunden"] = bit_or($modulrechte["stunden"], $rechte); $modulrechte["fibu"] = bit_or($modulrechte["fibu"], $rechte); $modulrechte["stall"] = bit_or($modulrechte["stall"], $rechte); $modulrechte["cms"] = bit_or($modulrechte["cms"], $rechte); $modulrechte["veranstalt"] = bit_or($modulrechte["veranstalt"], $rechte); und in die SESSION geschrieben: $_SESSION["modulrechte"]=$modulrechte; Mithilfe der Funktion bit_or werden die Rechte ganz einfach mit einer vorgefertigten PHP- Funktion aufaddiert: $modul_r = '0000001'; $modul_r =$modul_r '0000010'; Die Variable $modul_r besitzt nun den Wert '0000011'. Wenn nun der User wenigstens das Recht des Lesens hat, wird das Modul aufgelistet. Dies kann mit der Funktion bit_and geprüft werden. Seite 11 von 17

$recht = bit_and($modulrechte[$value], '0000001') $recht ist 0 wenn der User das gewünschte Recht hat und es wird ein Link ( mit der Session- ID ) zu dem Modul ausgegeben. Seite 12 von 17

Schritt 3: Modulauswahl Per Mausklick wird das Modul in einem neuen Browser geöffnet. Beim Öffnen des Moduls wird überprüft, ob der User noch oder überhaupt eingeloggt ist. Dies wird mit der Funktion checklogin geprüft. checklogin($_session['wcs_user']); Dieser Funktion wird der User-Login der Session übergeben. Sie verlängert dann in der Tabelle phpwcms_userlog die eingeloggte Zeit wenn der User eingeloggt war. Wenn es kein User in der Session gibt oder der User schon zu lange nichts mehr gemacht hat, wird der User automatisch ausgeloggt. In beiden Fällen wird der User wieder zum Anmeldeformular springen. Um nun die Rechte zu prüfen, kann man auf die Variable modulrechte der Session zugreifen. In dieser sind die Rechte des Users für die Module gespeichert. Zum Beispiel für das : $modulrechte=$_session["modulrechte"]; $rechte = $modulrechte["cms"]; Zum Testen, ob nun das gewünschte Recht vorhanden ist, gibt es die Funktion bit_and. Dieser wird die Variable der Rechte und die gewünschte Recht übergeben. Es kann aber immer nur ein Recht getestet werden: $ergebnis = bit_and($rechte, '0000001'); #das Recht lesen testen Man bekommt eine 0 zurück, wenn das gewünschte Recht vorhanden ist. Um alle Rechte zu testen: if( (bit_and($rechte, '0010000') == 0) && (bit_and($rechte, '0001000') == 0)&& (bit_and($rechte, '0000100') == 0) && (bit_and($rechte, '0000010') == 0)&& (bit_and($rechte, '0000001') == 0)) { #User hat alle Rechte } Die Funktion bit_and bedient sich dabei der PHP-Funktion der UND-Operation. Test 1 Test 2 Userrechte 0000100 0000001 Benötigte Rechte 0000100 0001000 Ergebnis 0000100 0000000 Seite 13 von 17

Dort wo beide Bit auf 1 gesetzt sind ergibt sich als Ergebnis ein Bitwert von 1. Dort wo mindestens ein 0 steht ergibt sich 0. Realisierung der Abmeldung Wie schon erwähnt gibt es auch eine allgemein Logout-Funktion für die Module. Dieser muss die Session übergeben werden. logout_m_form($_session); Die Funktion meldet den User aus der Tabelle phpwcms_userlog ab und zerstört die Session. Wenn JavaScript im Browser aktiviert ist, wird das Fenster geschlossen uns der User wieder zum Anmeldeformular gebracht. Ansonsten bleibt das Fenster geöffnet und der User bekommt dort wieder das Anmeldeformular. Alle Funktionen für die Implementierung der An- und Abmeldung sind in den Dateien login.php und own/login_inc.php zu finden. Seite 14 von 17

Anhang: Beispiel: Beispiel.php <?php session_start(); include ('./own_inc/login_inc.php'); // --- Testen, ob user eingeloggt und ob er admin-rechte hat ---- checklogin($_session['wcs_user']); $modulrechte=$_session["modulrechte"]; $rechte = $modulrechte["cms"]; if((bit_and($rechte,'0010000') == 0)&&(bit_and($rechte,'0001000') == 0)&& (bit_and($rechte,'0000100') == 0)&&(bit_and($rechte,'0000010') == 0)&& (bit_and($rechte, '0000001') == 0)) { $admin = 1; # User hat alle Rechte } // ---*/ echo User hat admin-rechte ; if ($_POST['do'] == 'logout') logout_m_form($_session);?> <html> <head> <title>beispiel für Login und Logout</title> </head> </body> </body> </html> <a href="beispiel.php?do=logout" target="_top"></a> Seite 15 von 17

Rechteverteilung Gruppe Modul Lesen Schreiben Löschen Eintragen Ändern 1.Vorsitzender Reitstundenverwaltung x x x x x FiBu x x x x x Mitgliederverwaltung x x x x x x x x x x Stall x x x x x Veranstaltungen x x x x x 2.Vorsitzender Reitstundenverwaltung x x x x x FiBu x x x x x Mitgliederverwaltung x x x x x x x x x x Stall x x x x x Veranstaltungen x x x x x Geschäftsführer Reitstundenverwaltung x FiBu Mitgliederverwaltung x x x x x x Stall x Veranstaltungen x Kassenwart Reitstundenverwaltung x FiBu x x x x x Mitgliederverwaltung x x x x x x Stall x x x x x Veranstaltungen x Jugendwart Reitstundenverwaltung x FiBu Mitgliederverwaltung x Stall Veranstaltungen x Stallaufsicht Reitstundenverwaltung x FiBu Mitgliederverwaltung x x Stall x x x x x Veranstaltungen x Vorstand Reitstundenverwaltung x erweitert FiBu Mitgliederverwaltung x Stall x Veranstaltungen x Seite 16 von 17

Reitlehrer Reitstundenverwaltung x x x x FiBu Mitgliederverwaltung x Stall x Veranstaltungen x x x x Reitschüler Reitstundenverwaltung x x FiBu Mitgliederverwaltung Stall Veranstaltungen x x Mitglied Reitstundenverwaltung passiv FiBu Mitgliederverwaltung Stall Veranstaltungen Gast Reitstundenverwaltung x x FiBu Mitgliederverwaltung Stall Veranstaltungen Administrator Reitstundenverwaltung x x x x x FiBu x x x x x Mitgliederverwaltung x x x x x x x x x x Stall x x x x x Veranstaltungen x x x x x Stallpersonal Reitstundenverwaltung FiBu Mitgliederverwaltung Stall x x Veranstaltungen Seite 17 von 17