Jump to content
php.lv forumi

struktūra tabulu piekļuves tiesību organizēšanai


Alnis

Recommended Posts

Vēlos uztasīt datubāzi, kurā lietotāji caur webu varētu labot datus, ievadīt jaunus, dzēst vai tikai skatīties.

 

Jautājums ir vairāk saistīts, kā organizēt datu piekļuves tiesības

 

Piemēram ir viena tabula ar lietotājiem tb_lietotaji:

 

Id| name

1| juris

2| saša

 

ir otra tabula ar tiesību veidiem- tb_tiesibas:

id|name

1| skatīties

2| rediģēt

3| veidot jaunu

 

 

ir trešā tabula, teiksim, tb_preces

id| preces name

1| spainis

2| alus

3| skaidas

 

tad ir ceturtā tabula – tiesības_tb

id| table_name |user_id| tiesibas_id

1| tb_preces | 1| 1

2| tb_preces | 1| 2

3| tb_preces | 1| 2

4| tb_preces | 2| 1

 

tātād juris tabulā “tb_tiesības” varēs veikt pilnīgi visu, bet saša tikai skatīties?

Caur admin paneli, adminam būs tiesības ir pa laikam teiksmim jurim nonemt rediģēšanas tiesības, bet sašam iedot utt.

 

Tagad tauta padalās ar advancētākiem risinājumiem, jo tādu tabulu kā tb_preces man būs daudz.

Link to comment
Share on other sites

Advancētāks ir vēl - sadalīt pa laukiem + izpildīt konkrētu f-ju formā (pavisam cits mappings)

Jo bieži vajag - labot, bet ne visu - tikai daļu lauku. Veikt konkrētu f-ju (apstiprināt, izrakstīt rēķinu, bet ne dzēst un pievienot).

Formas nesastāv tikai no laukiem :)

 

Tiesības iedalīt grupas... vēlāk grupām pielikt jūzerus un kešot mappingu.

 

SysSecurableObjects: {ObjectId, Name, Description, Type[Form,Table,Field,Action]}
SysUserGroupSecurity: {ObjectId,UserGroupId,Access [int]} // attiecīgam objekta tipa būs savs kombo/radio selekti
SysUserSecurity: {UserId, ObjectId, Access} // kešotā tabula - updeitojās pie grupas pielikšanas lietotājam vai gruaps tiesību maiņas

 

SysSecurableObjects {1, ManaForma, "bla bla bla super forma", Form}
SysUserGroupSecurity {1, 1, 1}  // 0 - no access, 1 - view, 2 - edit (0/1/2 der fieldiem un formām); tabulām - view/edit/add/delete; actioniem - jā/nē(izpildīt)

Edited by Delfins
Link to comment
Share on other sites

Advancētāks ir vēl - sadalīt pa laukiem + izpildīt konkrētu f-ju formā (pavisam cits mappings)

Jo bieži vajag - labot, bet ne visu - tikai daļu lauku. Veikt konkrētu f-ju (apstiprināt, izrakstīt rēķinu, bet ne dzēst un pievienot).

Formas nesastāv tikai no laukiem :)

 

 

tipa tabula

id| tabula_name| tabula_colon_name| user_id| tiesiba_id

?

 

kas ir mappings?

Link to comment
Share on other sites

SysSecurableObjects: {ObjectId, Name, Description, Type[Form,Table,Field,Action]}

 

vot šito es nesapratu, kur man lv.php.net jāskatās/jāmeklē par šo lietu? tā tak nav paša veidota f-ja kad kols starp nosaukumu un { ?

Link to comment
Share on other sites

Vēl iekš SysSecurableObjects var pielikt lauku `ParentObjectId`, kas norādītu inheritanci

 

- tabulām, lai varētu atselektēt visus fieldus vienā reizē un salikt masīvā

- formām, lai būtu konkrētam action-am konkrētajā formā (jo poga `Delete` būs vairākos :))

 

PS: minētā shēma man ir uztaisīta un darbojās nevainojama. Tev atliek uzrakst'ti mazu Form-ģenerētāju, lai katru reizi nerakstītu permisiju kodu ;)

Link to comment
Share on other sites

doh.. tā ir tābulas definīcija :D bet var būt arī masīvs/objekts...

 

tabulas definīcija? tas ir kautkas no OOP? sorry par stulbiem jautājumiem, bet pilnīgi acīs cērtās gribot uzzināt kaut ko sīkāk :)

Link to comment
Share on other sites

×
×
  • Create New...