[php]Private forum probleempje

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 28-05-2024
Hey,

ik zit met een klein probleem.
Ik ben voor mezelf nieuwe forumsoftware aan het maken, want m'n huidige forum is nogal brak :)

Ik ben nu bezig met de rechten en toegang tot private fora en stuitte op het volgende.

Er zijn categorieen die private zijn en fora die private zijn.
Als je niet ingelogd bent moet je alle fora en cats zien die niet private zijn, als je wel ingelogd bent moet je al deze fora zien + de fora waar jij toegang tot hebt.

Ik heb een tabel aangemaakt genaamd 'allowed' waar userid,boardid,catid instaan voor de private fora.
Nu is het probleem dat ik in de index met maar 2 queries wil werken, a) de query die de categorieen pakt en ordent op naam, en b) de query die de fora binnen die categorie pakt.

In de tabellen van de fora en categorieen geef ik nu ook op of ze private zijn of niet, als je niet ingelogd bent wordt een query uitgevoerd die de cats en fora pakt WHERE private != '1', en als je ingelogd bent voert hij 2 queries uit met een INNER JOIN op die allowed tabel.

Het probleem is nu, dat hij met die laatste queries niet automatisch alle niet-private fora meeneemt, voor mensen die ingelogd zijn moet ik dus op gaan geven in die allowed tabel dat ze ook toegang hebben tot de fora die al gewoon openbaar zijn, en dat is natuurlijk niet de bedoeling :)

Hoe zou ik dit volgens jullie beter kunnen doen?

Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 17-09 07:55

thomaske

» » » » » »

met een outer join moet het denk ik wel lukken..

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 28-05-2024
thomaske schreef op 09 januari 2003 @ 12:22:
met een outer join moet het denk ik wel lukken..
Hmm 2 joins in 1 query? Ik wist niet dat dat mogelijk was.

Acties:
  • 0 Henk 'm!

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
offtopic:
Jij gaat rechten toekennen aan Gebruikers? Zou je dat niet beter doen aan Groepen?

Acties:
  • 0 Henk 'm!

  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 28-05-2024
Nielsz schreef op 09 January 2003 @ 12:46:
offtopic:
Jij gaat rechten toekennen aan Gebruikers? Zou je dat niet beter doen aan Groepen?
Heb ik wel over zitten denken, maar het leek me niet zo'n heel groot probleem om ze aan gebruikers toe te kennen.
Zo kun je preciezer fora toewijzen aan bepaalde personen zonder veel met groepen te moeten kutten (stel dat je iemand aan een extra forum wil toevoegen of wilt verwijderen en je hebt er geen groep voor, moet je eerst die groep weer aanmaken, nu vink je gewoon dat forum voor hem aan/uit).

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

TangLeFuzZ schreef op 09 januari 2003 @ 12:53:
[...]


Heb ik wel over zitten denken, maar het leek me niet zo'n heel groot probleem om ze aan gebruikers toe te kennen.
Zo kun je preciezer fora toewijzen aan bepaalde personen zonder veel met groepen te moeten kutten (stel dat je iemand aan een extra forum wil toevoegen of wilt verwijderen en je hebt er geen groep voor, moet je eerst die groep weer aanmaken, nu vink je gewoon dat forum voor hem aan/uit).
En een tegenvraag: Stel je wilt een nieuw algemeen forumdeel maken?
En het loopt, en je hebt 250 gebruikers?

[ Voor 5% gewijzigd door gorgi_19 op 09-01-2003 12:56 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 28-05-2024
gorgi_19 schreef op 09 januari 2003 @ 12:56:
[...]

En een tegenvraag: Stel je wilt een nieuw algemeen forumdeel maken?
En het loopt, en je hebt 250 gebruikers?
Een algemeen forumdeel is altijd open voor alle gebruikers, maar een private forum voor 250 gebruikers, ja, daar zit zeker wat in.
Ik ga er toch nog eens goed over nadenken :)

P.S. of ik de rechten nou per user of per groep toeken, het probleem van hierboven blijft hetzelfde :)

Acties:
  • 0 Henk 'm!

  • Freee!!
  • Registratie: December 2002
  • Laatst online: 12:59

Freee!!

Trotse papa van Toon en Len!

Nielsz schreef op 09 januari 2003 @ 12:46:
offtopic:
Jij gaat rechten toekennen aan Gebruikers? Zou je dat niet beter doen aan Groepen?
Waarom niet aan gebruikers en groepen, met een UNION levert dat heel leuke resultaten op, zeker als gebruikers tot meerdere groepen kunnen behoren? Zo werkt een deel van onze beveiliging voor een commercieel pakket voor de groothandel en dat heb ik geschreven.

[ Voor 1% gewijzigd door Freee!! op 09-01-2003 13:14 . Reden: Correctie van syntax ]

The problem with common sense is that sense never ain't common - From the notebooks of Lazarus Long

GoT voor Behoud der Nederlandschen Taal [GvBdNT


Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 02-09 11:02

D2k

[rml][ alg/php] Forum & rechten[/rml]

der zijn nog veel meer boeiende topics over btw

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 28-05-2024
D2k schreef op 09 January 2003 @ 13:20:
[rml][ alg/php] Forum & rechten[/rml]

der zijn nog veel meer boeiende topics over btw
Thanks, die uitleg van Dusty is erg interessant!

Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

TangLeFuzZ schreef op 09 januari 2003 @ 13:38:
[...]
Thanks, die uitleg van Dusty is erg interessant!

*lol*

Groepen is een leuk idee, echter vindt ik het persoonlijk slecht werken. Juist omdat je soms variatie wilt hebben, daarom kan je wel "groepen" maken, echter hang je geen personen in deze groepen, je gebruikt deze "groepen" echter om series rechten meteen aan een persoon toe te kennen.

Wie in welke groep zit kan je altijd weer via een query achterhalen. :)

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 02-09 11:02

D2k

wat een geheugen heb ik heb dusty? ;)
wist dat je dat eens lang had uitgewerkt

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 28-05-2024
Ok ik doe het nu ongeveer op die manier van jou Dusty, lijkt me een fijne oplossing.

Ik zit alleen met de administratie van de boards, stel ik heb de volgende boards:

Boards tabel:
- id
- naam
- recht_lezen
- recht_posten

Inhoud:
1 | Test board A | 0 | 1
2 | Test board B | 2 | 3

Iedereen mag nu lezen in Test Board A, mensen waar een 1tje aan hangt in de rechten tabel mogen posten in A, mensen waar een 2tje aan hangt mogen lezen in B en mensen waar een 3tje aan hangt mogen posten in B.

Ik zit nu met het volgende, als ik nu een nieuw board ga toevoegen in het administratie gedeelte, hoe doe ik dat dan het beste.
Ik wil een compleet nieuw board met nieuwe rechten toevoegen, dan moet ik dus beide rechten (recht_lezen en recht_posten) een ander nummer geven dan alle nummers die in beide tabellen al bestaan, anders krijgen verkeerde users verkeerde rechten. Ik zal dus de getallen 4 en 5 moeten gebruiken.
Nu moet ik dus als ik een nieuw board toevoeg in een query het hoogste getal uit het veld recht_lezen vergelijken met het hoogste getal uit het veld recht_posten, en de hoogste van die 2, daar moet ik mee verder werken (+1 en +2 om 4 en 5 te verkrijgen). Dit lijkt me niet de juiste manier, hoe zou dit wel moeten?
Of is dit wel de enige en juiste manier?
Misschien zie ik iets over het hoofd?

Acties:
  • 0 Henk 'm!

  • Freee!!
  • Registratie: December 2002
  • Laatst online: 12:59

Freee!!

Trotse papa van Toon en Len!

Ik zou gewoon drie tabellen aanmaken, 1 met basisgegevens van gebruikers, 1 met basisgegevens van de boards en een derde met ID voor gebruiker, ID voor board (samen een unieke sleutel) en een veld voor wel of niet mogen lezen en/of posten. Dit is in de toekomst makkelijk uit te breiden voor groepen (groep als gebruiker, nieuwe tabel met gebruikers per groep).

The problem with common sense is that sense never ain't common - From the notebooks of Lazarus Long

GoT voor Behoud der Nederlandschen Taal [GvBdNT


Acties:
  • 0 Henk 'm!

  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 28-05-2024
Mr. Liu schreef op 10 January 2003 @ 10:07:
Ik zou gewoon drie tabellen aanmaken, 1 met basisgegevens van gebruikers, 1 met basisgegevens van de boards en een derde met ID voor gebruiker, ID voor board (samen een unieke sleutel) en een veld voor wel of niet mogen lezen en/of posten. Dit is in de toekomst makkelijk uit te breiden voor groepen (groep als gebruiker, nieuwe tabel met gebruikers per groep).
Hmmm tja, bovenstaande manier lijkt mij persoonlijk fijner, zo kun je heel makkelijk veel verschillende rechten toekennen.

Acties:
  • 0 Henk 'm!

Verwijderd

Zoals dusty al vermeld is het een leuk idee om met groepen te gaan werken maar als je stel je voor een stuk of 50 admins hebt en bv 10.000 gebruikers zijn groepen minder relevant (vind ik) rechten kan je dan precies defenieren bij de user die de rechten nodig is.. en als je een nieuw forum add mogen alle users deze toch gewoon lezen, dat standaard leesrecht zal dan denk ik ook gewoon 0 zijn :)

Acties:
  • 0 Henk 'm!

  • Apollo_Futurae
  • Registratie: November 2000
  • Niet online
dusty schreef op 09 January 2003 @ 15:28:
Groepen is een leuk idee, echter vindt ik het persoonlijk slecht werken. Juist omdat je soms variatie wilt hebben, daarom kan je wel "groepen" maken, echter hang je geen personen in deze groepen, je gebruikt deze "groepen" echter om series rechten meteen aan een persoon toe te kennen.

Wie in welke groep zit kan je altijd weer via een query achterhalen. :)
maar wat als je alle users in een groep een bepaald extra recht wilt toekennen?
dan is het toch wel erg makkelijk als je met één simpele query kan opvragen wie tot die groep behoort...

Pas de replâtrage, la structure est pourrie.


Acties:
  • 0 Henk 'm!

  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 28-05-2024
Ik denk dat ik het in het administratie gedeelte op deze manier ga doen:

Rechten overnemen van: [ select menu met bestaande fora erachter ]

Nieuwe rechten toekennen:
- lezen: [] 0 [] 1 [] 2 [] 3 [] 4 [] 5 [] 6 [] nieuw
- posten:
- modden:

[] is een checkbox
Elk getal is een link naar de pagina met users die toegang hebben tot dat recht nummer.
Als je nieuw aanvinkt checkt hij zoals ik heirboven al 's uitlegde welk nr het laatste is in alle velden en maakt ie een nieuwe nummer aan.

Groepen verwerk ik er later in.

Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

TangLeFuzZ schreef op 10 January 2003 @ 09:09:
Of is dit wel de enige en juiste manier?
Misschien zie ik iets over het hoofd?

IS niet de enige manier, is zelfs een foute manier.

Je hebt een rechten tabel, wat je in principe alleen bijhoudt waar een bepaald recht voor staat.

Als je dus een dropdown box gebruikt om aan te geven welke recht bij het lezen hoort krijg je alle rechten in dat dropdown box (naampje uiteraard is makkelijker dan een nummer), voeg extra opties onderaan.

"VOEG NIEUW RECHT TOE" -> kom je dan op de volgende pagina kan je een automatisch een nieuw recht aanmaken, en de nieuwe ID invullen op de lees rechten.

Wat je uiteraard ook wilt is een optie "Zelfde als Lezen". e.d. ZOdat je bij lezen "Voeg Nieuw Recht toe" kan kiezen en bij "Schrijven" kan zeggen dat het dezelfde recht als het lezen moet zijn.

Vergeet niet om te vragen naar een nieuwe naam als men kiest om een nieuwe recht aan te maken, kan heel mooi gedaan worden met een javascriptje om het veld zichtbaar te maken als men kiest voor een nieuw recht, immers wil je het een logische naam geven :)

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

Apollo_Futurae schreef op 12 januari 2003 @ 12:47:
[...]

maar wat als je alle users in een groep een bepaald extra recht wilt toekennen?
dan is het toch wel erg makkelijk als je met één simpele query kan opvragen wie tot die groep behoort...

Je zegt zelf al dat een groep een bepaald aantal users zijn die bepaalde rechten hebben (of niet hebben), zou jij niet een query kunnen maken die dus bepaald welke gebruikers een bepaald recht (of niet) hebben ?

Dan kan je toch op elk moment een groep maken van mensen met bepaalde rechten (of zonder bepaalde rechten).

In principe is het op mijn manier dus flexibeler, want je kunt ook zeggen van iedereen met toegang tot een bepaald forum, terwijl je normaal dan bijvoorbeeld 3 verschillende groepen moet gaan bijwerken.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR

Pagina: 1