Lynx Posted September 26, 2006 Report Posted September 26, 2006 Līdz šim projektos, kur vajadzēja specifiskas atļaujas noteiktiem lietotājiem, lai piekļūtu administratīvām darbībām, es izmantoju sistēmu, kur katrai atļaujai ir savs lauks atļauju tabulā šādi: zinas-enum(0,1), lietotajie-enum(0,1) etc. Ļoti sarežģīti uzturēt, ja jāuztaisa jauna sadaļa. Pirms kāda laika pētīju php error_reporting() un ieraudzīju šādu ģeniāli vienkāršu sistēmu(nosaukums nebija minēts, tieši tapēc problēma, jo nevaru atrast materialus google), kur mēs saglabājam tikai vienu int vērtību lietotājam, kas ir summa no katras kategorijas skaitļa attiecīgi: zinas => 1 lietotaji => 2 komentari=>4 Ja vēlamies, lai lietotājs var piekļūt tikai ziņām un komentāriem summa ir 5. Izveidot saskaitīšanu nav problēmu. Galvenā problēma ir tā, ka pašlaik es nevaru izdomāt pareizo formulu, kā izvadīt atļaujas, jo visos meiģinājumos kaut kas nebija precīzi un kods izvadīja arī kategorijas, kurām nav pieejas, vai neizvadīja vajadzīgo.
Delfins Posted September 26, 2006 Report Posted September 26, 2006 (edited) es jau forumā postēju `opciju saglabāšanu`.. Koroč: $permsArr = Array( 1 => 'Users', 2 => 'SysConfig', 4 => 'News', .... ); foreach (.. $permID => $permName) { echo $permName . (($permID & $userPerms) ? '- OK' : '- No Access'; } Edited September 26, 2006 by Delfins
Grey_Wolf Posted September 26, 2006 Report Posted September 26, 2006 zinas => 1lietotaji => 2 komentari=>4 Nepateiksu preciizu nosaukumu bet taas ir baitu operaacijas 1,2,4,8,16,32... Pameklee jaabuut (iebuvetajaam) f-jam() kas tev apstraadasa datus abos virzienos.....
Lynx Posted September 26, 2006 Author Report Posted September 26, 2006 Wow, sasodīti gudri, Delfins. Es pats šādu nebūtu dabūjis gatavu. Paldies
Delfins Posted September 26, 2006 Report Posted September 26, 2006 SASODĪTI vienkārši :).. kā jau bit-operācijas :)
KAC Posted September 26, 2006 Report Posted September 26, 2006 (edited) vari palasiit http://lv.php.net/language.operators.bitwise ko komentaaros ierakstiijis jbrand1 at uwe_emm_bee_see dot edu. plashaak - te Edited September 26, 2006 by KAC
Delfins Posted September 26, 2006 Report Posted September 26, 2006 nevis interesanti, bet standarta risinājums... Tikai tur viens trūkums - userim var būt tikai viena permīcija (grupa)
bubu Posted September 26, 2006 Report Posted September 26, 2006 Nja.. te nu redzams, ka programmēšana nav sākusies no paskāla/C, bet uzreiz skriptu valodā programmēts. Zemā līmenī cilvēki atradinājušies domāt - bitos un baitos, and, xor, or, not, ... Tur pat nav funkcijas jāzin, ar prastiem operatoriem pietiek: &, ^, |, ~, <<, >>.
Aleksejs Posted December 4, 2007 Report Posted December 4, 2007 Ir arī vairāki citi drošības modeļi: http://en.wikipedia.org/wiki/Category:Comp...security_models Augstāk aprakstītais pēc būtības ir: vienkāršots ACL (tāds pats kādu izmanto unix failu sistēmā). Neviens neliedz izmantot arī kādu citu. ;)
Kaitnieks Posted December 4, 2007 Report Posted December 4, 2007 Vienīgais no kā jāuzmanās, izmantojot šo sistēmu, ir gadījums ar ļoti daudz sadaļām. Citādi var sanākt kā šeit: http://worsethanfailure.com/Articles/Absur...igh-Values.aspx
Recommended Posts