Ankündigung

Einklappen
Keine Ankündigung bisher.

rechte level script

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • rechte level script

    Servus ihr lieben,

    ich habe bisher ein user script geschrieben mit (registrierun, login etc.) wo alles funktioniert.

    Jetzt wollte ich dieses user-script um ein rechtelevel system erweitern. Das ganze sieht wie folgt aus:

    user_rights.sql
    PHP-Code:
    CREATE TABLE user_rights (
        
    ID INT AUTO_INCREMENT PRIMARY KEY,
        
    UserID TINYINT,
        
    Recht VARCHAR(30)
    ); 
    Zur erklärung:
    - ID: ist die Datensatz ID, wie immer halt.
    - UserID: ist die verknüpfung zum user aus der user sql tabelle (usersID = ID bei users.sql)
    - Recht: hier steht dann sowas wie "Admin", "News", "Tutorial" etc.

    Jedes moduil hat eine eigene rechtebezeichnung. Und für jedes recht gibt es einen datensatz. Sprich wenn user 1 mehrere rechte hat gibt es auch mehrere ´datensätze mi der userID=1.

    Deshalb ist es am sinnvollsten dachte ich die rechte per ID abzufragen.
    also wie immer zur db connecten und per select das ganze abfragen. dann das ganzem per whileshleife in variablen speichern.

    Das problem ist jetzt nur wie kann cih die rechte eines users nachdem ich sie aus der DB ausgelesen habe und per whilschleife in eine variable ($row['recht']) gespeichert habe seitenübergreifend nutzen? bzw. wo ist mein denkfehler, denn irgendwie will das gnaze nciht so funktionieren wie iche s will.

    P.S.: hab jetzt leider keinen code für die rechteanfrage zur hand da ich von vorne anfange wollte das rechtelevel zu schreiben. deshalb kann ich auch keienn code zur fehlerüberprüfung posten.
    .visit » Tolga-Tanik.de
    .visit » TolgaTanikFoto @ Facebook
    .visit » Tolga Tanik Fotografie @ YouTube

  • #2
    mach dir doch einfach eine Funktion die das Rechte überprüfen für dich in die hand nimmt....

    PHP-Code:
    function userRights($user,$right) {
    // du holst via qry alle Rechte des users $user
    if($rights[$right] == "1"// vorrausgesetzt die rechte des users wurden alle in rights gespeichert...
    return true;
    else
    return 
    false;

    im späteren verlauf kannst du dann eifnach auf deine funktion zurückgreifen

    PHP-Code:
    if(userRights(USER"newsPosten")){
    // zugriff zum news posten
    } else {
    echo 
    "ERROR";
    exit;

    naja vll hats ja für nen denkanstoß gereicht ^^

    oh ich glaub ich hab was verwechselt ich dachte Recht wäre nur ein Bool feld und das du dann für jedes modul ne neue Bool spalte anlegst so würde die funktion das nämlich im moment verarbeiten aber wenn du nur ein recht in der Tabelle stehen hast musst du natürlich dementsprechnend anders auswerten

    ich dachte viel mehr an so eine Rechte verwaltung

    PHP-Code:
    CREATE TABLE user_rights (
        
    ID INT AUTO_INCREMENT PRIMARY KEY,
        
    UserID TINYINT,
        
    newsPosten INT(1NOT NULL,
        
    newsEditieren INT(1NOT NULL,
        
    newsLöschen INT(1NOT NULL
    ); 
    Somit könnte man die rechte individuell anpassen.

    z.b. ein user
    PHP-Code:
    INSERT INTO user_rights (`UserID`, `newsPosten`, `newsLöschen`, `newsEditieren`) VALUES ('11''1''1''0'); 
    sodass User 11 newsPosten und newsLöschen dürfte jedoch keine news bearbeiten, sei dahingestellt ob das so sinnvoll ist

    Kommentar


    • #3
      deine version würde zu viele tabellen erfordern. für jedes modul immer post/edit/delet also 3 spalten pro modul. und das dann für jeden user der mehrere rechte hat dann. wenn ich das richtig verstanden habe xD
      .visit » Tolga-Tanik.de
      .visit » TolgaTanikFoto @ Facebook
      .visit » Tolga Tanik Fotografie @ YouTube

      Kommentar


      • #4
        ja naja kommt drauf an man muss ja nicht für jedes modul 3 spalten anlegen sondern könnte nen binäres rechte system verwalten
        quasi
        jede funktion hat ne eigene zahl 1 2 4

        1 hinzufügen
        2 löschen
        4 editieren
        dann kann man in die spalte das jeweilige rechtelevel eintragen z.b.

        news 7
        dann hat der benutzer 1+2+4 also alle rechte
        und

        artikel 3 also kann er 1+2 löschen und hinzufügen

        naja is nurn gedanken anstoß aber in die richtung kannste das fortsetzen

        du kannst dann auch wieder nur ein feld nehmen für alle rechte
        und jedem recht eine binäre zahl zuordnen....

        Kommentar


        • #5
          also ich werd mir mal das rechtsystem von vorne neu überlegen. Das ganze in eine funktion zu schrieben ist sicher die beste lösung. Mien hauptziel ist jedcoh das die rechte eines users beim login überprüft werden und für die dauer des besuches der seite verfügbar sind. also eigentlich stink normales rechtlevel ab login bis logout verfügbar, halt seitenübergreifend. Mal sehen wohin mich das führt.
          .visit » Tolga-Tanik.de
          .visit » TolgaTanikFoto @ Facebook
          .visit » Tolga Tanik Fotografie @ YouTube

          Kommentar


          • #6
            naja die funktion erledigt das ja auch
            wenn du die früh genug einbindest dann ist sie auch script übergreifend und kann überall ausgeführt werden vom login bis zum logout

            hab auch nochn snippet gefunden wegen der binärenrechte verwaltung das ist eigentlich auch immer recht geil unter php

            PHP-Code:
            $user_recht <<0;
            $recht_news << 0// = Binär 1, Dezimal 1
            $recht_forum << 1// = Binär 10, Dezimal 2
            $recht_comments << 2// = Binär 100, Dezimal 4 

            // user darf news und coments, nicht forum...
            $user_recht $user_recht $recht_news;
            $user_recht $user_recht $recht_comments;

            //recht prüfen :
            if($user_recht $recht_forum) {
                echo 
            "ja";    
            } else {
                echo 
            "nein";    

            Kommentar


            • #7
              Wieso schreibst du die Rechte nich einfach in ne $_SESSION Variable? Hat allerdings den Nachteil dass sich der User bei Rechte änderungen einmal aus und wieder einloggen müsste...

              Kommentar


              • #8
                ich danke erstmal für die denkanstöße. ich muss das ganze wie gesgat nochmal überdenklen und überarbeiten. Danke trotzdem für die Hilfe.
                .visit » Tolga-Tanik.de
                .visit » TolgaTanikFoto @ Facebook
                .visit » Tolga Tanik Fotografie @ YouTube

                Kommentar

                Lädt...
                X