Klez Posted November 24, 2007 Report Posted November 24, 2007 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?
Kristabs Posted November 24, 2007 Report Posted November 24, 2007 Neesmu mēģinājis, bet kruta skaitās ar bitu mahinācijām :) http://php.lv/f/index.php?showtopic=5477&a...%C4%ABme%C5%86i
martins256 Posted November 24, 2007 Report Posted November 24, 2007 es daru tā, ka lietotājam piešķiru karogus 'abcdefghijklmn' un tad ar strstr pārbaudu vai ir atļauts izmantot šo failu/tā daļu...
Grey_Wolf Posted November 25, 2007 Report Posted November 25, 2007 ir vairaki risinajumi , bet viens no efektivajiem ir Bitwise operacijas..... DB (Mysql lauks SET ) .... tas tev dos iespeju katram userim glabat tiesibas n limenjos .... piem: labot lapu --> Yes labot rakstu --> No utt..... -----
Kavacky Posted November 25, 2007 Report Posted November 25, 2007 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.
Delfins Posted November 25, 2007 Report Posted November 25, 2007 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ā
Kavacky Posted November 25, 2007 Report Posted November 25, 2007 Un cik bieži vajadzēs vairāk par alfabētu? PS: Ekstrēmistiem - alfabēts jau nebeidzas ar latīņu versiju vien. :D
Delfins Posted November 25, 2007 Report Posted November 25, 2007 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)
eregi Posted November 26, 2007 Report Posted November 26, 2007 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.
Vebers Posted November 26, 2007 Report Posted November 26, 2007 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..
eregi Posted November 26, 2007 Report Posted November 26, 2007 (edited) 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 November 26, 2007 by eregi
Grey_Wolf Posted November 27, 2007 Report Posted November 27, 2007 var vel glabat visu masiva un to masivu DB noglabat ar serialize() ....
xPtv45z Posted November 27, 2007 Report Posted November 27, 2007 $_SESSION['permissions'] = 'a'; if(strpos($_SESSION['permissions'], 'a')!==false) { //drikst pievienot rakstu } else { //nedrikst pievienot rakstu }
Klez Posted November 27, 2007 Author Report Posted November 27, 2007 daudz varianti :) paldies visiem par atbildēm. būs ko pamācīties ...
Recommended Posts