Jump to content
php.lv forumi

Tiesību izdalīšana


Klez

Recommended Posts

Ir vēlme izzināt, kā labāk (efektīvāk) veidot lietotājiem tiesības un grupas.

Kā to realizēt?

Viens variants ir glabāt sesijā kaut kādu mainīgo piem $_SESSION['pieejas_limenis']

un attiecīgi šim mainīgajam piešķir skaitlisku vērtību no 1 līdz n, atkarībā cik daudz vajag.

un tad attiecīgi pārbauda, cik liela ir $_SESSION['pieejas_limenis'] vērtība, jo augstāka vērtība, jo lielākas pieejas.

teiksim lai labotu kādu ziņu/ierakstu jābūt vismaz 2 pieejas līmenim.

if ($_SESSION['pieejas_limenis'] > 2){
//atļaujam labot
}

attiecīgi pie ielogošanās tiek uzstādīta $_SESSION['pieejas_limenis'] vērtība.

 

Varbūt kādam ir kāds labāks variants, vai arī ir kas sakām par šo variantu?

Link to comment
Share on other sites

Nu tiesības glabāt ķipa "labot lapu - nē, labot rakstu - jā" jau atļauj dajebkura glabāšanas sistēma. Ir/nav flags "a" - ļaujam/neļaujam to, ir/nav "b", utt.

 

Man pašam labāk patīk flagu abcdef... variants, no senajiem CS laikiem iegājies.

Link to comment
Share on other sites

ar tiem abdefg... ir ķēpiga padarīšana.. vairāk par alfabētu neuzliksi.

Principā ir 2 varianti:

1.) biti

2.) masīvs ar keyiem (ielasām no DB tabulu)

 

Vēl kas, ka ir 2 dažādi tiesību mehānismi:

- per user - katram useriem jāsaliek

- uz grupu - (pat ja ir vairākas) uzliek grupai/-ām un tad kopsummu iekešo userim [liekas tas ir ērtākas]

- abi iepriekšējie kopā

Link to comment
Share on other sites

Es domāju kaut ko šādu:

 

- ir moduļi

- iekšā permissions.php ar named array-iem

- var uzlikt permisijas uz action-iem, field-iem

- modulis pats ielādē usera permisijas, atkarībā no tā kur atrodas (iekošotas, jo ir vairākas grupas userim)

 

permissionsny4.png

Link to comment
Share on other sites

Nu pats arī domāju izmantot abcdefgh... variantu, tad izvilkt to no db sadalīt pa burtiem un tad ar array ( iespējams, nezinu, vai būt labi) norādītu piem - a => add_news..

 

Kā ar to strstr jāstrādā, lai sagrieztu abcdefgh pa burtiem? itkā skatos http://lv2.php.net/strstr, bet neredzu nekur tādu piemēr, kur būtu kā sadalīt pa burtiem.

Link to comment
Share on other sites

Izmanto strpos, ātrāka un mazāk atmiņu ēdoša f-ja().

 

$_SESSION['permissions'] = 'abih';


if(strpos($_SESSION['permissions'], 'a')) {
 //drikst pievienot rakstu
} else {
 //nedrikst pievienot rakstu
}

// --------------


if(strpos($_SESSION['permissions'], 'b')) {
 //drikst bloķēt
} else {
 //nedrikst bloķēt
}

// and so on..

Link to comment
Share on other sites

Liels paldies :)

 

 

Vebers - pamēģini tā -

$_SESSION['permissions'] = 'a';


if(strpos($_SESSION['permissions'], 'a')) {
 //drikst pievienot rakstu
} else {
 //nedrikst pievienot rakstu
}

 

šitāds peim neies, vismaz man tā, ja velku no db ārā un pirms tā flaga nav nekas, tad nemaz tur nekas nenotiek..

Edited by eregi
Link to comment
Share on other sites

×
×
  • Create New...