Jump to content
php.lv forumi

Recommended Posts

Posted

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?

Posted

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.....

-----

Posted

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.

Posted

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ā

Posted

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

Posted

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.

Posted

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..

Posted (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 by eregi
Posted
$_SESSION['permissions'] = 'a';


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

×
×
  • Create New...