Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Entwicklung und Konzeption sozialer Software (https://boardunity.de/entwicklung-konzeption-sozialer-software-f76.html)
-   -   eigenes Forum (https://boardunity.de/eigenes-forum-t3608.html)

Tasmas 05.10.2005 15:36

eigenes Forum
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

Ich "entwickle" momentan mein eigens kleines Forum, nicht um ein weiteres von vielen Foren zu entwickeln, sondern um meine PHP und Mysql zu erweitern ausserdem kann man sowas oft für eigene Projekte verwenden.

Ich weiss auch wie ich fast alles Programmieren kann, nur beim entwickeln des "Rechtesystem" habe ich mühe und weiss nicht wie ich es angehen soll.

Als Anhang findet ihr ihr die Tabellenstruktur als SQL-Code.

Ich hab mir das so gedacht, dass jeder Benutzer einer Gruppe angehört und die Recht der Gruppe auf ein Board werden in die Tabelle "rechte" eingetragen, da hab ich dann ein Feld "rechte" für lesen 1, für schreiben 2 und für moderieren 3 steht.
Doch ich weiss nicht wie ich dann die Rechte überprüfen soll. Etwa schon im SQL-Query?

Ich hoffe jemand kann mir ein wenig weiterhelfen.

mfg
Tasmas

codethief 06.10.2005 23:24

Du kannst dir doch einfach den Datensatz aus "rechte" raussuchen, der zu dem aktuell betrachteten Board und der Gruppe gehört, und erhälst sowas wie $rechte['lesen'], $rechte['schreiben'], wenn du das Feld "rechte" aus dem geladenen Datensatz entsprechend parst. Und diese Rechte kannst du dann doch einfach auf 1 bzw. 0 überprüfen. ;)

Tasmas 07.10.2005 09:02

hmm ja stimmt, und wie mach ich es dann wenn ich alle vorhandenen Foren ausgeben will und nur diejenigen anzuzeigen wo der User das Recht darauf hat?

codethief 07.10.2005 13:43

Schau dir mal Joins in MySQL an. Generell würde ich die Rechte nicht in ein Feld / eine Spalte "rechte" tun, sondern auf viele Felder ("lesen", "schreiben" usw.) verteilen. Das macht die Arbeit letztendlich um einiges leichter, gerade wenn man mit Joins arbeitet.

Dann säh es nämlich so aus, wenn du nur alle Boards holen willst, in denen der User lesen kann:

SELECT f.* FROM forum AS f, rechte as r WHERE f.ID=r.forumID AND r.lesen=1 AND r.gruppeID={DURCH DIE GRUPPENID DES BETRACHTENDEN USERS ERSTETZEN}


code.

Tasmas 07.10.2005 15:24

jetzt klappt.

danke vielmals :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:49 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25