PHP Portal » PHP Forum » Entwicklung » Brainstorming und Code-Küche » Rechtesystem

[Diskussion] Rechtesystem 

von
Member
Zitat
Stehe gerade auf dem Schlauch.

Ich brauche ein Rechtesystem mit mehreren Benutzergruppen.

Leider habe ich hierzu jetzt gerade mal wieder keine Idee wie man das ganze aufbaut.

Die Rechte sollen erstmal auf die Gruppen aufgebaut werden.

Gruppen:
Admin => Darf alles
Supporter => Eingeschränkt
Buchhaltung => Nur Buchhaltung
Kunden => Kundenseite

Werbung

Re: Rechtesystem 

von
the Boss
Zitat
na ich würde eine extra Rechtetabelle machen,
und dann eine n:m Tabelle für die Zuordnung zu den Gruppen.

Re: Rechtesystem 

von
Member
Zitat
Aber wie speicher ich das in der Tabelle?
Pro Link oder wie?

Re: Rechtesystem 

von
the Boss
Zitat
recht: mit id, name
gruppe: mit id, name
person: id, name
recht_gruppe: mit recht_id, gruppe_id
gruppe_person: mit gruppe_id, person_id

jepp, ist aufwendig aber m.E. die sauberste Möglichkeit

Re: Rechtesystem 

von
Member
Zitat
Also, brauche ich zusätzlich 5 Tabellen.

Re: Rechtesystem 

von
the Boss
Zitat
so sehe ich das auch,
kannst natürlich noch weiter gehen,
und eine recht_person anlegen für Sonderrechte

Re: Rechtesystem 

von
Member
Zitat
Ich gehen mal davon aus, das du so ein Rechtesystem schon hast, kannst du davon mal die SQL-Struktur posten?

Re: Rechtesystem 

von
the Boss
Zitat
nö, aber das ist doch mit dem DBDesigner bzw. der MySQL-Workbench innerhalb von Sekunden zusammengeklickt

Re: Rechtesystem 

von
Member
Zitat
Habe werde noch.

Rechte System 

von
Neuling
Zitat
Hab dir mal so ein Rechte system geschrieben.

Datei absgruppen.php

PHP Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php /** * Abstrace Gruppen * @version 1.2 * @author Splasch * @Filename: absgruppen.php * Benutzer Verwaltung **/ if (0 > version_compare(PHP_VERSION, '5')) { die('Dieses File wurde generiert für PHP 5'); } abstract class Absgruppen { private $gruppen = array(); # Gruppen Objekte private $allName = array(); # Namen aller Instanzierten Gruppen /**
für die ungekürzte Fassung bitte einloggen


Datei access.php

PHP Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php /** * Access Zugangs Prüfung * @version 1.1 * @author Splasch * @File: access.php * Benutzer Verwaltung **/ if (0 > version_compare(PHP_VERSION, '5')) { die('Dieses File wurde generiert für PHP 5'); } class Access { /** * * @param
für die ungekürzte Fassung bitte einloggen


Datei dbpdo.php (Datenbank verbindung)

PHP Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php /** * Datenbank Klasse * @version 1.1 * @author Splasch * Filename: dbpdo.php * Verbindung über die PDO herstellen **/ class Dbpdo { private $uid=dbuid; #Benutzename private $pw=dbPw; #Password private $serv=dbServ; #Datenbank Server private $dbname=dbname; #Datenbank Name protected static $db_obj = null; #Datenbank Objekt PDO public $error; #Fehler Varibale /**
für die ungekürzte Fassung bitte einloggen


Datei gruppe.php

PHP Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php /** * Gruppe mit Rechten * @version 1 * @author Splasch * @Filename: gruppe.php * Benutzer Verwaltung **/ if (0 > version_compare(PHP_VERSION, '5')) { die('Dieses File wurde generiert für PHP 5'); } class Gruppe { protected $re_name = array(); # Beschreibungs Name des Zugriffs | Seitenkennung(id) für den Zugriff protected $gruppenName; # Name der Gruppe /** * Ladet Gruppen Rechte
für die ungekürzte Fassung bitte einloggen


Datei user.php

PHP Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php /** * User * @version 1.2 * @author Splasch * @Filename: user.php * Benutzer Verwaltung **/ if (0 > version_compare(PHP_VERSION, '5')) { die('Dieses File wurde generiert für PHP 5'); } class User extends Absgruppen { protected $user_id = 0; # Benutzer Nummer protected $user_name = ''; # Benutzer Name protected $user_mail = ''; # E-Mail Adresse
für die ungekürzte Fassung bitte einloggen


Zu guter Letzt ein Anwendungs Beispiel: Test durchgang File

PHP Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php /** * TEST * @version 1.2 * @author Splasch * @Filename: * Benutzer Verwaltung **/ include('config.php'); include('dbpdo.php'); include('gruppe.php'); include('absgruppen.php'); include('user.php'); include('access.php'); #User Dumy Profil $profil = array("name"=>"Nubon", "id"=>"4", "mail"=>"nubon@ttt.de"
für die ungekürzte Fassung bitte einloggen


Im Anhang siehst das Datenbank diagram für das Rechte system der obigen Klassen.

Sql Datenbank

PHP Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
-- -------------------------------------------------------- -- -- Tabellenstruktur für Tabelle `admin_gruppen` -- CREATE TABLE IF NOT EXISTS `admin_gruppen` ( `f_userid` int(10) unsigned NOT NULL, `f_grupid` int(11) NOT NULL, PRIMARY KEY(`f_userid`,`f_grupid`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Tabellenstruktur für Tabelle `admin_rechte` -- CREATE TABLE IF NOT EXISTS `admin_rechte` ( `f_reid` int(11) NOT NULL,
für die ungekürzte Fassung bitte einloggen


Mfg Splasch

Schnellantwort

ähnliche Themen