Gestion droits utilisateur adéquat..

bonjour,

Je dois concevoir un projet avec différents niveaux d’administrations et d’utilisateurs. Pour l’instant, je suis qu’au stade de la modélisation.

Mais mon problème est le suivant…

Dois je concevoir moi même au moyen de tables ma gestion des droits, ou me conseillez vous d’utiliser un “add-on” en particulier pour gérer mes différents niveaux hiérarchiques au sein du site.

Salut shizo971,

Tout à déjà été conçu sur Yii et cela s’appelle RBAC (Role Based Access Control).

Plus d’info sur la théorie (en anglais)

Et sur Yii dans la doc:

http://www.yiiframework.com/doc/guide/1.1/en/topics.auth#role-based-access-control

Cela devrait te donner déjà une bonne base. N’hésite pas si tu veux plus d’informations :)

A+ et bonne découverte

…oui, et en plus, des extensions sont disponibles pour nous faciliter la vie :

  • Rights
  • RBAM
  • SRBAC

8)

ciao

Ah d’accord merci de vos retours, j’ai pris note.

Si j’ai bien compris:

  • SRBAC est la version graphique de RBAC (mais demeure une beta),

  • il semble que la gestion sous RBAM soit faite de maniere graphique, contrairement à RIGHTS.

Parmis tous ces choix de gestion utilisateurs, vous me conseillerez lequel en final de compte ?

Si j’ai deja ma table d’utilisateurs créée, je pourrais toujours visualiser son contenu (graphiquement peut etre?) pour attribuer les droits aux ayants droits ?

Désolé, si j’embête plus d’un avec mes questions.

Je débute dans Yii, et donc je préfère me poser ces question à la conception de la base de données pour avoir les idées claires.

no problemo ;)

Sinon, je ne peux pas trop te renseigner vu que je n’ai encore utilisé aucune de ces extensions en production… je vais devoir les tester car j’en ai besoin pour un projet (à priori, Rights est mon favori).

ciao

8)

Merci de ton avis Raoul ^^

Y aurait il d’autres retours d’expériences vis à vis d’une gestion de la gestion des droits utilisateurs ?

j’aurais tendance à te dire de le faire toi même (sans aucune arrogance). Je pense que c’est la meilleure manière de savoir un peu comment ça marche :)

As tu déjà essayé? ou as-tu rencontré des difficultés?

A+

j’ai regardé le RIGHTS, par contre je n’ai pas encore vu comment prendre en compte ma table utilisateurs deja existant, donc je recherche d’autres tuto à ce sur cette extension à ce sujet.

je suis aussi entrain de testes les extensions RBAC et il me semble que sur Rights, tu peux sans problème prendre en charge ta table d’utilisateurs existante. Pour ce faire, tu disposes de certains paramètres d’initialisation :

  • userIdColumn : nom de la colonne de clef primaire de la table user (par exemple ‘user_id’)
  • userNameColumn : nom de la colonne du nom d’utilisateur pour la table user (par exemple ‘nom’)

…et je crois que c’est tout. En cas de problème, n’hésite pas à poster sur le topic Right … normalement tu auras une réponse rapide.

ciao

8)

Bonjour,

je voulais créer un nouveau sujet mais je n’arrive pas et pour cela je suis entrain d’écrire ici. je suis désolé!

[b]

je veux afficher à chaque seconde 5 enregistrements dans un table HTML. ces enregistrements sont enregistrées dans la base de donnée.

voici le code qui affiche tout les enregistrements :[/b]

<?php $societes = Societes::model()->findAll();

       foreach (&#036;societes as &#036;societe) {

?>

      &lt;tr style=&quot;text-align:center;&quot;&gt;&lt;td style=&quot;font-size:small  ; font-weight: bolder; white-space: nowrap;&quot;&gt;&lt;?php echo &#036;societe-&gt;Nom; ?&gt;&lt;/td&gt;


                    &lt;/tr&gt;

<?php } ?>

Mais moi je veux afficher seulement 5 enregistrement chaque seconde.Par exemple si j’ai 20 enregistrements il faut que chaque seconde afficher 5 enregistrements.

Svp aidez moi et merci…[b]Salut,

je veux afficher à chaque seconde 5 enregistrements dans un table HTML. ces enregistrements sont enregistrées dans la base de donnée.

j’ai pu afficher les 5 enregistrements à l’aide d’une requête Sql mais je veux qu’il change à chaque seconde. par exemple si j’ai 20 enregistrements il faut que chaque seconde afficher 5 enregistrements.

Svp aidez moi et merci…[/b]

Salut freeyii,

pour cela tu dois chercher du côté de l’ajax. Dans la page que tu veux créer, tu dois inclure du code javascript qui va :

[list=1][]créer un timer[]à chaque appel du timer (toutes les secondes dans ton cas), faire une requête vers le serveur pour demander les 5 enregistrements suivants[*]à la réception de la réponse, modifier la table, et remplacer les enregistrements présents, par ceux renvoyés.[/list]

En fait le plus gros du travail se trouve côté client, et il n’existe pas à ma connaissance, du code tout prêt dans Yii pour réaliser une telle page. Je te conseille de regarder un peu du côté de JQuery, car c’est la librairie Javascript qui est intégrée à Yii.

Courage ;)

8)

Merci Raoul pour la réponse.

Mais vraiment je n’ai jamais utilisé ajax. et j’ai la même problème avec la modification d’un champs.

pare exemple j’ai un table qui contient des numéros et j’ai le problème dans la modification d’un champs.

voila le code :

if (isset($_POST[‘modifier’])) {

        &#036;i = 0;


        foreach (&#036;_POST['pids'] as &#036;pid) {


            &#036;i++;


            &#036;ser = nomtable::model()-&gt;findByPk(&#036;id);


           &#036;ser-&gt;p_number = &#036;_POST['p_numbers'];


            &#036;ser-&gt;save();

mais toujours la valeur de $_POST[‘p_numbers’] est égale un autre valeur que je tape.

c fait longtemps que je cherche la solution mais dommage je ne trouvé aucun solution pour modifier un champ.

1502

modification.png

Salut freeyii,

si tu ne reçois rien dans la variable _POST c’est que peut-être ton formulaire n’est pas bien construit… je ne peux pas t’en dire plus sans voir le code.

Sinon pour être sûr de ce qui est envoyé au serveur, je peux utiliser Firefox + Firebug, ou même les outils de développement de Chrome (Ctrl+maj+i). Avec ça tu vas pouvoir examiner les requêtes et les réponses echangées entre le navigateur et ton serveur. Cela pourrait être utile pour voir le contenu de $_POST qui est envoyé à ta fonction, et bien sûr c’est aussi super utile pour débugger de l’ajax.

… juste une remarque sur ton code :

  • remplacer $id par $pid
  • remplacer $_POST[‘p_numbers’] par $_POST[‘p_numbers’][$pid] (à tester)

… enfin, sans voir l’ensemble du code c’est un peu de la devinette ;)




if (isset($_POST['modifier'])) {

$i = 0;

foreach ($_POST['pids'] as $pid) {

$i++;

$ser = nomtable::model()->findByPk($pid);   // $id est remplacé par $pid

$ser->p_number = $_POST['p_numbers'];    

$ser->save();

ciao

J’ai remplacé $id par $pid et $_POST[‘p_numbers’] par $_POST[‘p_numbers’][$pid] mais la valeur qu’il affiche est : 66666666666 . par exemple si je met dans le champs un valeur je vais obtenir sur 66666666666 . vraiment c’est bizarre :s je suis triste de ça !

j’ai un probleme avec le modules right ou generateur gii , quand je met le lien path/to/application/index.php?r=rights ou path/to/application/index.php?r=gii rien ne s’affiche et pourtant je ne recois aucune erreur .

merci pour votre aide