Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Usermanagement: Idee?

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Usermanagement: Idee?

    Hi leute,

    Ich bin im Moment am Programmieren eines CMS'. Nun habe ich mal die ersten paar Hürden geschafft ( ) aber nun kommt die wahrscheinlich grösste im ganzen Programmieren.
    Das Usermanagement ist mein Problem. Ich möchte gerne das ganze mit Benutzergruppen machen und nun bin ich am überlegen, wie ich das ganze mit den Zugriffsrechten machen könnte. Ich möchte es so machen, dass der Admin des CMS' Benutzergruppen hinzufügen und wieder löschen kann und bei den Zugriffsrechten einstellen kann, ob die Benutzergruppe ein Modul gar nicht anschauen kann, nur anschauen kann, editieren kann oder gar administrieren kann.
    Das Problem ist nun, wie ich die Tabllen-Struktur mache.
    Mir fiel als erstes ein, am einfachsten würde das wohl gehen, wenn ich für jedes Modul eine Spalte mache und dann z.b mit can_view, can_edit, can_admin oder so, das bestimme.
    Aber das ist ziemlich umständlich und damit wird zudem das Konfigurieren weniger Flexibel.

    Hat hier jemand vielleicht eine gute Idee wie ich das machen könnte?

    Thx für die Antworten.

    Gruss
    mix

    ps: Ich hoffe ihr habt verstanden was ich möchte

  • #2
    ich hätte da zwei tabellen

    in der einen sind die userangaben (user_id,username, pw und user_level(z.b. 1 = Admin))

    in der zweiten tabelle würde ich die rechte dann einstellen

    z.b.

    level 1 read_msg = 1, edit_msg=0 (1 steht für kann und 0 für kann nicht)
    Auch eine Faust war einmal eine offene Hand

    Kommentar


    • #3
      Villeicht solltest du dir mal PEAR::LiveUser anschauen. Ist noch in der Entwicklung, aber bereits lauffähig.

      LiveUser bietet bereits alle Möglichkeiten der Gruppen- und Benutzerverwaltung. Ist aber recht komplex... :wink:

      http://pear.php.net/package/LiveUser

      Kommentar


      • #4
        Zitat von Ohrwurm83
        ich hätte da zwei tabellen

        in der einen sind die userangaben (user_id,username, pw und user_level(z.b. 1 = Admin))

        in der zweiten tabelle würde ich die rechte dann einstellen

        z.b.

        level 1 read_msg = 1, edit_msg=0 (1 steht für kann und 0 für kann nicht)
        hi,

        Erstmal Thx für die Antwort, aber deine Version ist viel zu umständlich. Und zwar weil: Für manche User möchte ich spezielle Zugriffsrechte machen und dann muss ich für jeden dieser User einen neuen Rang mit den entsprechenden Userrechten machen? Und dann muss ich das z.b für 100 User machen? Da behaltet man den Überblick nie... Und zudem für jedes Modul noch eine Spalte? Wie im ersten Post von mir gesagt, das ist zu umständlich...

        @Frogg: Jo Thx, werde ich mir mal anschauen. Ich hab jetzt mal im Internet gesucht und phpGACL gefunden.. dies ist aber auch ziemlich komplex :>

        Kommentar


        • #5
          na wenn für jeden einzelnen editieren willst machst einfach alle beiden antworten zusammen statt user_level fügst du gleich die level ein!

          aber wenns mal mehr als 100 user hast brauchst du eher gruppen!
          Auch eine Faust war einmal eine offene Hand

          Kommentar


          • #6
            Zitat von Ohrwurm83
            na wenn für jeden einzelnen editieren willst machst einfach alle beiden antworten zusammen statt user_level fügst du gleich die level ein!

            aber wenns mal mehr als 100 user hast brauchst du eher gruppen!
            Das habe ich ja auch im ersten Post gesagt :>

            Aber mal schauen, evtl. mach ichs trotzdem so... Pear::Live User und phpGACL sind viel zu komplex... Ich blick da net durch :>

            Kommentar


            • #7
              Wie wärs mit einem System ähnlich wie bei Unix? Jedes Ojekt bekommt einen Besitzer, eine Besitzergruppe, und die Rechte für Besitzer, Gruppe und alle anderen. Dann brauchst du nur noch die Benutzer geschickt in Gruppen einteilen und das wars. Das ganze lässt sich bestimmt auch noch vereinfachen (z.B. alle anderen weglassen/immer verbieten etc)... :wink:

              KMAssS

              Kommentar


              • #8
                Hmm... Ne Überlegung ists wert... Ich kenne ne Seite die das genau so macht...Und es funzt gut

                Kommentar


                • #9
                  wie währe es hiermit:

                  du macht einfach eine spalte die du 'rechte' nennst, das is dann varchar(255) oder so, da kommt dann sowas hier rein --> '1;1;0'
                  das endspricht dann 'can_view;can_edit;can_admin'
                  dann musst du das ganze nurnoch mit explode() aufteilen und schon hast du in 1 array alle rechte drinne. mit ner funktion kannste ja dann aus $rechte[0], $rechte[1] etc
                  $rechte[can_view], $rechte[can_edit] machen

                  Kommentar


                  • #10
                    Zitat von CeCero
                    wie währe es hiermit:

                    du macht einfach eine spalte die du 'rechte' nennst, das is dann varchar(255) oder so, da kommt dann sowas hier rein --> '1;1;0'
                    das endspricht dann 'can_view;can_edit;can_admin'
                    dann musst du das ganze nurnoch mit explode() aufteilen und schon hast du in 1 array alle rechte drinne. mit ner funktion kannste ja dann aus $rechte[0], $rechte[1] etc
                    $rechte[can_view], $rechte[can_edit] machen
                    noch nie was von der normalform gehört?
                    hier wird z.b. das sortieren nach rechten schwer und das updaten auch...
                    udn falls noch ein neues recht dazu kommt wie can_insert oder so kann es auch zu problemen kommen
                    meine idee wär eine tabelle für alle rechte zu machen mit rechte_ID und rechte_bezeichnung
                    wobei rechte_ID den primärschlüsel hat
                    dann eine tabelle die die verbindungen zwischen rechten und usern herzustellen...hier gibt es die felder rechte_ID und user_ID wobei kein feld den primärschlüssel hat..
                    dann wär die db auch in der normalform :wink:
                    hier eine info zu diesen normalformen: http://www.rent-a-database.de/mysql/mysql-256.html

                    Kommentar


                    • #11
                      Re: Usermanagement: Idee?

                      Eigentlich isses ja keine Profi Frage...

                      PEAR :: LiveUser wurde ja schon genannt.

                      Userrechte:
                      Zitat von mix
                      Das Problem ist nun, wie ich die Tabllen-Struktur mache.
                      Mir fiel als erstes ein, am einfachsten würde das wohl gehen, wenn ich für jedes Modul eine Spalte mache und dann z.b mit can_view, can_edit, can_admin oder so, das bestimme.
                      Aber das ist ziemlich umständlich und damit wird zudem das Konfigurieren weniger Flexibel.
                      Verwende dafür den Spaltentyp SET. Du kannst so in einer Spalte 64 Berechtigungen definieren. In der WHERE Klausel verwendest Du dann FIND_IN_SET (nadel, heuhaufen).

                      http://dev.mysql.com/doc/mysql/de/SET.html

                      Kommentar


                      • #12
                        Hi,

                        Thx für die Antwort meikel. Das ist sicher eine sehr gute Variante.

                        Ich werds mal Ausprobieren.

                        Gruss
                        mix

                        Kommentar


                        • #13
                          wie wärs mit dem MySQl type SET ??

                          du legst eine tabelle an, in dem du die Benutzer speicherst:
                          userID, userName, userPwd, ..., userGroup

                          dann legste eine tabelle für die Benutzergruppen an:
                          groupID, groupName, groupFlags
                          '1' 'Admin' 'news_new, news_edit, news_upload, ...'

                          mehr Infos findest du unter:
                          http://dev.mysql.com/doc/mysql/en/SET.html


                          ps: war nur mal so ne idee ... was haltet ihr davon?
                          pps: updaten kannste die einzelnen elemente von set auch ... siehe link

                          Kommentar


                          • #14
                            DigitalFreak: Gute Idee.. Nur würde ich an deiner Stelle mal den Post von meikel durchlesen.. :> Er/Sie(sorry weiss ich net) hat genau das gleiche geschrieben...

                            Kommentar


                            • #15
                              ups ... tschuldigung .. überlesen

                              Kommentar

                              Lädt...
                              X