[ magrinjo @ 03.04.2018. 22:27 ] @
Napravio sam posebnu stranicu auth.php koja sadrzi

Code:
<?php
session_start();
if(!isset($_SESSION["username"])){
header("Location: login.php");
exit(); }
?>


Zatim, u kod svake stranice sam dodao
Code:
session_start();
i to funkcionise korektno, stranice su vidljive samo registrovanim korisnicima.

Moje pitanje je, kako bih mogao da za odredjenu stranicu gadjam odredjeni nivo prostupa?
U bazi podataka, pored username i password, napravio sam i kolonu "level", gde je vrednost "1" totalni pristup, a "2" restriktivni.
[ Predrag Supurovic @ 03.04.2018. 23:53 ] @
Savet. ZAboravi na nivoe. Istraži role/privilege sistem.

Us ustini radi se o tome da uvedes sistem privilegija (sta korsinik sme da radi) i rola (funkcija korsinika) kojima dodeljuejs privilegije.

Na primer uvedes privilegiju: can_edit i rolu editor kojoj dodelis da ima privilegije can-edit. To znaci da ako korsinik iam rolu editor on ima privilegiju can_edit. Naravno jedna roal moze da iam vise privilegija. uvedes rolu manager koja takodje ima privilegiju can_edit ali i rolu viewer kja nema privilegije can_edit.


Kada to tako namestis onda na stranici za edit na pocetku samo proveris da li korsinik ima privlegiju can_edit. Ako ima, doyvolis mu editovanje. To znaci da ce rola editor ali irola manager moci da edituju. Rola viewer nema trazenu privilegiju i nece moci da edituje.

Ovakav sistem ti omogucava da veoma prialgoldjiv, po potrebi mozed da uvodis i nove role i nove privilegije a da ti ceo sistem radi bez izmena koda.
[ magrinjo @ 04.04.2018. 00:01 ] @
Koji bi tutorijal preporucio za to?

Prvi put se susrecem sa tim terminima u PHPu.
[ bojan_bozovic @ 04.04.2018. 03:59 ] @
Ako ti treba Zope, ne izmisljaj toplu vodu vec instaliraj Zope. Tamo imas vise nivoa pristupa (administratori, urednici, korisnici) za svaku stranu itd. Eventualno ako je tvoj sajt vrlo specifican pa ga Zope ne pokriva, pa da onda radis od nule.
[ Predrag Supurovic @ 04.04.2018. 08:36 ] @
Citat:
magrinjo:
Koji bi tutorijal preporucio za to?

Prvi put se susrecem sa tim terminima u PHPu.


U poslu, čak i junor level programeru, ako dobije onakvo objašnjenje kakvo sam ti ja dao, i onda pita ovo što si ti pitao, sledi otkaz.
[ Shadowed @ 04.04.2018. 08:56 ] @
Mozda covek i nije u poslu nego samo uci :) A i sumnjam da bi bas dobio otkaz, no to vec ide u drugu pricu.

@Magrinjo, ono sto ti je napisao Predrag je dobar savet a ti termini su uopsteni, nisu vezani za PHP. Privilegija (permission) je dozvola da se radi neka akcija i u nekom najjednostavnijem ali ne bas prakticnom sistemu, korisniku bi dodeljivao te dozvole pa bi on mogao da radi ono za sta ima dozvolu. Ovo sto je Predrag napisao je malo slozeniji i mnogo bolji sistem gde imas Roles (uloge) gde moze da se definise jedan role (ili jedna rola kako obicno kazemo) sa grupom privilegija. Negde se role zovu grupe (npr. u Windows-ovom sistemu privilegija). Svaka rola/grupa moze sadrzati jednog ili vise korisnika. Korisnike onda prebacujes u jednu ili vise grupa i tako im das privilegije te role.
Sta time dobijas?
-Privilegije/dozvole/permissions ti jasno definisu funkcionalnosti koje mozes na pojedinim delovima sajta da omogucavas ili zabranjujes
-Role ti omogucavaju da grupises privilegije i tako ima prakticno sablone za grupu privilegija
-Koristeci istu rolu za vise korisnika ne moras da ponavljas dodeljivanje istih privilegija svim tim korisnicima (zamisli da na ES-u trebas svakom moderatoru zasebno da dozvolis da menja poruke, da top-uje teme, da brise poruke...)
-Prebacivanjem korisnika iz role u rolu mozes jednostavno i intuitivno da mu menjas privilegije na sajtu.

Postoje i dalje slozenosti koje se mogu uvesti ali mislim da ti to nece biti potrebno. Navescu samo radi potpunosti:
-Rola moze da sadrzi druge role
-Privilegije se mogu dodeliti kako roli tako i korisniku direktno
-Privliegije mogu osim dodeljena/nedodeljena biti Allowed/Denied/Undefined. Pri tome se sabiraju iz svih grupa pa se moze odrediti da li je jaca allowed ili denied (obicno je denied). To znaci da ako je po bilo kojoj kojoj korisnik roli zabranjeno, onda je u potpunosti zabranjeno.
-Ako je uvedeno prethodno navedeno, moze se podesavati za svaku privilegiju da li je podrazumevano dozvoljena ili ne sto se koristi ako je undefined (nije ni kroz jednu rolu ni direktno korisniku odrednjena ni kao allowed ni kao denied).


Napominjem jos jednom, to su koncepti. Nisu vezani direktno za php.
[ anon334571 @ 04.04.2018. 15:45 ] @
Ovo sa rolama je dobra ideja, predpostavljam stara praksa, moraću da primenim :) Ja imam 'usertype' na sajtu, gost je 0, član 1, autor 2, itd... i baš sam se namučio da popamtim šta sve ko sme a šta ne sme.
[ Branimir Maksimovic @ 04.04.2018. 16:21 ] @
Ma to sa rolama i privilegijama poznato je svakom ko je ikad radio sa nekom bazom ;p
[ Predrag Supurovic @ 05.04.2018. 01:52 ] @
Citat:
Branimir Maksimovic: Ma to sa rolama i privilegijama poznato je svakom ko je ikad radio sa nekom bazom ;p


Misliš, svakome ko je nešto radio? :)
[ anon334571 @ 05.04.2018. 10:16 ] @
Ja sam radio i radim i dalje. Nego nemam toliko brige oko toga. Trenutno na sajtu imam samo dve vrste korisnika, ja - admin i gost. :)

A kad sam radio "glomazniji" sajt, stavim usertype 1,2,3,4... 4 ima najvece privilegije. I to je radilo. Samo mora za svaku akciju da se proverava koji je usertype. Ovako mogu da organizujem kod u config stavim guest = array ('signin', 'read'); memeber = array('signout', 'read', 'comment') itd...

I onda proverim samo na svakoj akciji da li korisnik ima rolu :)

To mi nije padalo na pamet jer, kazem... dobro ajde, moze da se kaze nisam nista ozbiljnije radio :)
[ magrinjo @ 05.04.2018. 18:11 ] @
@Pedja, @Bojane

Hvala na odgovorima.

Naime, samo dve grupe korisnika mi trebaju pa nisam hteo da ulazim preduboko u to.
Ono sto je Pedja napisao, procitao sam na brzaka pa nisam shvatio, sada mi je jasno o cemu je pricao i apsolutno ima smisla.

Hvala jos jednom :>