Klez Posted November 24, 2007 Report Share 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? Link to comment Share on other sites More sharing options...
Kristabs Posted November 24, 2007 Report Share 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 Link to comment Share on other sites More sharing options...
martins256 Posted November 24, 2007 Report Share 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... Link to comment Share on other sites More sharing options...
Grey_Wolf Posted November 25, 2007 Report Share 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..... ----- Link to comment Share on other sites More sharing options...
Kavacky Posted November 25, 2007 Report Share 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. Link to comment Share on other sites More sharing options...
Delfins Posted November 25, 2007 Report Share 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ā Link to comment Share on other sites More sharing options...
Kavacky Posted November 25, 2007 Report Share 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 Link to comment Share on other sites More sharing options...
Delfins Posted November 25, 2007 Report Share 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) Link to comment Share on other sites More sharing options...
eregi Posted November 26, 2007 Report Share 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. Link to comment Share on other sites More sharing options...
Vebers Posted November 26, 2007 Report Share 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.. Link to comment Share on other sites More sharing options...
eregi Posted November 26, 2007 Report Share 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 Link to comment Share on other sites More sharing options...
Grey_Wolf Posted November 27, 2007 Report Share Posted November 27, 2007 var vel glabat visu masiva un to masivu DB noglabat ar serialize() .... Link to comment Share on other sites More sharing options...
xPtv45z Posted November 27, 2007 Report Share Posted November 27, 2007 $_SESSION['permissions'] = 'a'; if(strpos($_SESSION['permissions'], 'a')!==false) { //drikst pievienot rakstu } else { //nedrikst pievienot rakstu } Link to comment Share on other sites More sharing options...
Klez Posted November 27, 2007 Author Report Share Posted November 27, 2007 daudz varianti :) paldies visiem par atbildēm. būs ko pamācīties ... Link to comment Share on other sites More sharing options...
Recommended Posts