Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Oikeuksien hallinta

arcatan [31.07.2005 08:42:36]

#

Olen tässä laatimassa kuvagalleriasoftaa. Eräs suunnitelluista ominaisuuksista on tarkka oikeuksien hallinta. Tämä tarkoittaa sitä, että jokaiselle käyttäjälle (ja mahdollisesti myös käyttäjäryhmälle, jos sellaisetkin toteutan) voidaan määritellä erikseen oikeuteunsa eri albumeihin. Siis, esimerkiksi kuvien katselu, lisäys, poisto, jne. Ongelmana on kuitenkin nyt se, että miten tallentaisin järkevästi käyttäjien oikeudet tietokantaan. Ehdotuksia?

Itselleni ei tule mieleen muita järkeviä tapoja, kuin erillinen taulu, jonka kentät ovat käyttäjä, albumi ja oikeudet.

ajv [31.07.2005 08:50:57]

#

Siis käyttäjien oikeudet riippuvat albumista? Kyseessä siis ei ole se, että normikäyttäjällä olisi oikeudet vain omaan galleriaansa / kuviinsa ja admineilla (admin-käyttäjäryhmällä) olisi kaikki oikeudet? Jos ei niin täytyykö jokaisella käyttäjällä todellakin olla uniikit oikeudet kaikkeen, vai riittäisikö kenties esim. 10-15 erilaisen käyttäjäryhmän luonti?

Itse olen paininut hieman samanlaisen ongelman kanssa ja siitä on olemassa vielä hieman keskeneräinen innovaatio omassa keskeneräisessä gallerimoottorissa :)

Mazuli [31.07.2005 08:52:57]

#

no lisäät tietokantaan johonkin tauluun "oikeudet" kentän jonka tyyppi on varchar sitten muodostat oikeuksista yhtenäisen merkkijonon tyyliin

<?

/*eka arvo katselu toka lisäys jne.. y = kyllä n = ei*/
$oikeudet = array("k","k","n");
/*voihan ton toki käsinkin kirjottaa mut jos hakee arvot
  jostain niin voi olla helpompaa noin                   */
$oikeudet = implode("-",$oikeudet);

?>

jonka sitten tallennat tauluun. Sitten kun pitäisi tarkistaa
oikeuksia haet tuon merkkijono käyttäjän kohdalta taulusta ja pilkot sen osiin

<?
$oikeudet = hae_tietokannasta();
$oikeudet = explode("-",$oikeudet);

if($oikeudet[0] == "y")
  echo "Käyttäjällä on oikeus katsella kuviva";
else
  echo "Käyttäjällä ei ole oikeutta katsella kuvia";
if($oikeudet[1] == "y")
  echo "Käyttäjällä on oikeus lisätä kuvia";

 /*jne*/
?>

no nimeämiset ja mikä tarkoittaa mitäkin ym järjestykset voit tietenkin ite päättäää mutta toi olikin vain esimerkki

ajv [31.07.2005 09:03:59]

#

Itseasiassa ongelmaasi taitaa löytyä ratkaisu tutkimalla MySQL:n käyttäjätietokannan (mysql-tietokanta) rakennetta. Siellähän määritellään jokaiselle käyttäjälle oikeudet mitä saa missäkin tietokannassa tehdä.

Gwaur [31.07.2005 09:19:23]

#

Arcatan, joka nyt juuri on hyvin lähellä minua, haluaa täydentää, että hän käyttää siis Rubya, eikä PHP:ia. ;)

arcatan [31.07.2005 09:30:40]

#

ajv kirjoitti:

Siis käyttäjien oikeudet riippuvat albumista? Kyseessä siis ei ole se, että normikäyttäjällä olisi oikeudet vain omaan galleriaansa / kuviinsa ja admineilla (admin-käyttäjäryhmällä) olisi kaikki oikeudet? Jos ei niin täytyykö jokaisella käyttäjällä todellakin olla uniikit oikeudet kaikkeen, vai riittäisikö kenties esim. 10-15 erilaisen käyttäjäryhmän luonti?

Idea on sellainen, että albumit ovat eräänlaisessa puurakenteessa. Ensinnäkin, kun käyttäjä saa tietyt oikeudet johonkin albumiin, ne periytyvät myös kaikkiin alialbumeihin. Käyttäjällä on toki oikeudet omiin kuviinsa (albumeihinsa) ja ylläpitäjillä kaikkiin. Galleriastani on tarkoitus tulla varsin monipuolinen, ominaisuuksiin on kuulumassa esimerkiksi kommentointi ja "yksityiset" albumit. Tämän takia haluaisin mieluiten tarkan oikeuksien säädön.

Lisäksi, jos luon useamman käyttäjäryhmän, en haluaisi kovakoodata niiden oikeuksia, varsinkaan jos niiden määrä kasvaa, joten olen edelleen saman ongelman edessä.

Mazulille todettakoon, että tiedän kyllä, missä muodossa taulun sisällä tallennan tietokantaan. Ongelma on se, että missä muodossa noin koko tietokantaa ajatellen.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta