Re: zwei verschiedene Bearbeitungs-Zugriffs-Ebenen - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Gong (18 Beiträge) am Freitag, 9.Dezember.2011, 11:49.
    Re: zwei verschiedene Bearbeitungs-Zugriffs-Ebenen

      Hallo,

      du musst deine Benutzerdatenbank um ein Feld für die Zugriffsebene erweitern und dann bei jedem Benutzer festlegen welche Ebene er angehört.

      Des weiteren musst du deine Geschenkdaten ebenfalls um ein Feld erweitern (Freigabe; 1 für frei und 0 für unfrei verwenden).

      Bei der Ausgabe der Daten muss dieses Feld mit abgefragt werden.

      Am einfachsten wird es wenn du vor der Ausgabe der Datenbank eine IF Abfrage einbaust

      if (Zugriffsebene eq "Admin")
      {
      do_all .... (alle Daten ausgeben)
      }
      else
      {
      do_all "Freigabe==1" ... (nur freigegebene Daten ausgeben)
      }
      


    Ihre Antwort:

    Name: EMail: EMail bei Antwort? WWW:
    Titel:
    Text:

    Neuer Eintrag


 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Dirk W. (3 Beiträge) am Mittwoch, 7.Dezember.2011, 18:02. WWW: www.baseportal.de/cgi-bin/baseportal.pl?htx=/dirkey/W
    zwei verschiedene Bearbeitungs-Zugriffs-Ebenen

      Hallo, ich habe eine Wunschliste-Datenbank. Jeder darf alle Datensätze lesen, mit dem Passwort, dass die gesamte Verwandtschaft kennt, darf diese alle Datensätze erstellen/bearbeiten/löschen.

      Nun hätte ich aber gerne eine zweistufige Berechtigung:
      Jeder darf nur die Datensätze mit einem Attribut "frei" lesen
      die Benutzergruppe "Verwandtschaft" darf die Datensätze mit dem Attribut "frei" wie gehabt erstellen/bearbeiten/löschen (d.h. erstellte sollen automatisch das Attribut "frei" erhalten). Die Benutzergruppe "Verwandtschaft" soll das Attribut "frei"/"Gesperrt" garnicht sehen.

      Die Benutzer-Gruppe "Admin" soll aber darüber hinaus alle Datensätze ("frei" UND "gesperrt" lesen/bearbeiten/löschen dürfen.

      So möchte ich, dass ich bestimmte Wünsche/Geschenkideen vorbereiten oder vorübergehend "unsichtbar" machen kann, ohne dass sie weg sind.


      Ich selbst habe meine Datenbank nur aus einer Beispiel (Adress-Datenbank) abgeleitet und habe so super viel Ahnung nicht.
      Wer kann mir helfen?
      Danke!!!

     Antworten

    Beitrag von Gong (18 Beiträge) am Freitag, 9.Dezember.2011, 11:49.
    Re: zwei verschiedene Bearbeitungs-Zugriffs-Ebenen

      Hallo,

      du musst deine Benutzerdatenbank um ein Feld für die Zugriffsebene erweitern und dann bei jedem Benutzer festlegen welche Ebene er angehört.

      Des weiteren musst du deine Geschenkdaten ebenfalls um ein Feld erweitern (Freigabe; 1 für frei und 0 für unfrei verwenden).

      Bei der Ausgabe der Daten muss dieses Feld mit abgefragt werden.

      Am einfachsten wird es wenn du vor der Ausgabe der Datenbank eine IF Abfrage einbaust

      if (Zugriffsebene eq "Admin")
      {
      do_all .... (alle Daten ausgeben)
      }
      else
      {
      do_all "Freigabe==1" ... (nur freigegebene Daten ausgeben)
      }
      

     Antworten

    Beitrag von Dirk W. (3 Beiträge) am Freitag, 6.Januar.2012, 14:32.
    Re: zwei verschiedene Bearbeitungs-Zugriffs-Ebenen

     Antworten

    Beitrag von Gong (18 Beiträge) am Samstag, 7.Januar.2012, 22:56.
    Re: Re: zwei verschiedene Bearbeitungs-Zugriffs-Ebenen

      Hallo Dirk,

      da habe ich wohl übersehen das du 3 Bedingungen benötigst^^

      wie prüfst du die Nutzerrechte?
      So wie ich vorgeschlagen haben, oder hast du einen anderen Weg?

      kannst du den betreffenden Teil des Scripts hier posten? Dann tue ich mich leichter mit der Hilfe.

      Danke und Gruß

     Antworten

    Beitrag von Dirk W. (3 Beiträge) am Sonntag, 8.Januar.2012, 11:32.
    Re: Re: Re: zwei verschiedene Bearbeitungs-Zugriffs-Ebenen

      Hi Gong, danke nochmal / schonmal für Deine Hilfe!

      bisher hatte ich nur die zwei Zugriffs-Stufen:
      [X] Jeder darf lesen
      (nicht verknüpft mit einer Benutzerdatenbank, zumindest nicht in der Verwaltungsseite dieser Geschenkliste-Datenbank).

      Dann hatte ich aber trotzdem eine Nutzer.Datenbank, da hat er aber irgendwie nur das eine Passwort abgefragt, nicht in Verbindung mit einem Nutzernamen (Dieses Zustand ist aktuell noch vergleichbar in http://baseportal.de/cgi-bin/baseportal.pl?htx=/dirkey/Wunsch_Anja/news)

      Hier der Teil des Quellcodes aus der "Aufrufe-Seite":

      <do action=all db=news range^=0,100 sort=-Datum searchfields=Datum listfields=Status,Geschenk allfields=Datum,Status,Geschenk formfields=Datum,Status,Geschenk showamount=all,sel selectbrowse=top buttonbrowse=no pagebrowse=no indexbrowse=top border=0 spacing=1 padding=2 gridcolor=000080 datasize=2 databack=00FF99 headback=E0E0E0 listtype=list language=de detail=link search=link input=link localparams=+>
      

      Wenn ihr einen Eintrag in der Liste hinzufügen oder löschen wollt (damit es kein anderer verschenken kann), dann gebt dazu das Passwort ein:

      Das Passwort ist Anjas volles Geburtsdatum "TT.MM.JJJJ"</B> .
      <form action="http://baseportal.de/cgi-bin/baseportal.pl?htx=/dirkey/Wunsch_Anja/newsadmin" method="post" enctype="multipart/form-data">
      <input type=hidden name="htx=" value="/dirkey/Wunsch_Anja/newsadmin">
      Passwort: <input type="password" name="pwrein=">
      <input type=submit value="Anmelden"></form>
      


      Hier noch der Quellvode der "Admin-Seite von Wunsch_Anja, wo man dann nach dem Eingeben des Passwortes landet:

      <perl>
      if($namerein ne "Besucher")
      {
        get "Name==!$namerein", "nutzer"; 
      
        if($Passwort ne "" && $Passwort eq $pwrein)   {     do_all "db=news databack=00FF99 datasize=2 headback=e0e0e0 border=0 spacing=1 padding=2 gridcolor=CCFF00 dataface=arial,helvetica sort^=-Datum range=all pagebrowse=no buttonbrowse=no listtype=list listfields=Datum,Status,Geschenk input=link", "namerein", "pwrein";   } else   {     out "<b>Anmeldung fehlgeschlagen!</b>";     $namerein="Besucher";   }
      }
      </perl>
      <br><br><a href="http://baseportal.de/cgi-bin/baseportal.pl?htx=/dirkey/Wunsch_Anja/news"><font face=arial size=1>zurück zur Login-Seite</font></a>
      




      Jetzt habe ich bei meiner Seite ("Wunsch_Dirk"; Link siehe unten) Die Datenbank erstmals richtig mit einer Nutzer-Datenbank verknüpft, seitdem wird der Inhalt nicht mehr (Lesezugriff für "Alle") angezeigt, sondern ich werde auch zu Lesen zum Login aufgefordert.

      Der Quellcode ist aktuell vom Aufbau her noch etwa identisch dem von "Wunsch_Anja"



      Ich müsste also irgendwie den Login mit Name und Passwort eines "Dummy-Nutzers" mit nur Leserechten im Quellcode bzw. im Link auf diese Seite automatisieren, so dass er beim aufrufen automatisch eingeloggt ist.

      Die restliche Unterscheidung in Login als "Verwandte" (mit Änderungs- und Schreibrechten) und in Admin mit vollen Rechten bekomme ich dann schon hin bzw. bekomme es meiner Verwandtschaft beigebracht zu dem PW noch zusätzlich das Wort "Gast" einzugeben.
      Schöner wäre es natürlich, wenn auch der Benutzername schon wieder mit dem Login fest verbunden wäre und für Verwandte und Admin jeweils eine eigene Login-Seite käme, in der man dann nur noch das PW eingeben muss, wie bisher.

     Antworten

    Beitrag von Gong (18 Beiträge) am Mittwoch, 11.Januar.2012, 11:08.
    Re: Re: Re: Re: zwei verschiedene Bearbeitungs-Zugriffs-Ebenen

      hallo Dirk,

      bau in die Admin-Seite bitte folgenden Code ein:

      <perl>
      #Nutzerdatenbank öffnen und das übergebene Passwort suchen
      get "Name==!$pwrein","nutzer";
      

      #Rückgabewert größer 0?
      if ($_amount  >= 0)
      {
      #welchen Rang hat der angemeldete Nutzer?
        if ($Rang eq "Admin")
        {
      #Ausgabe für den Admin -> alles
       do_all "db=news databack=00FF99 datasize=2 headback=e0e0e0 border=0 spacing=1 padding=2 gridcolor=CCFF00 dataface=arial,helvetica sort^=-Datum range=all pagebrowse=no buttonbrowse=no listtype=list listfields=Datum,Status,Geschenk input=link",namerein,pwrein;
        }
      #Rang ist Benutzer?
        elsif ($Rang eq "Benutzer")
        {
      #Ausgabe für den Benutzer -> eingeschränkt; ohne Status
      do_all "db=news databack=00FF99 datasize=2 headback=e0e0e0 border=0 spacing=1 padding=2 gridcolor=CCFF00 dataface=arial,helvetica sort^=-Datum&&Status==!frei searchfields=-Status formfields=-Status allfields=-Status range=all pagebrowse=no buttonbrowse=no listtype=list listfields=Datum,Geschenk input=link",namerein,pwrein;
        } 
        else
        {
      #Hinweis falls die Berechtigung nicht bekannt ist
        out "Diese Berechtigung ist nicht bekannt<br>"/n;
        }
      }
      else
      {
      #es wurde keine Passwort in der nutzer-Datenbank gefunden
      out "<b>Anmeldung fehlgeschlagen!</b>"/n;
      } 
      </perl>
      

      Die "Nutzer"-Datenbank muss um das Feld "Rang" erweitert werden
      (Feld:Rang Sortierung:Text Typ:option Parameter:Zeilen=0, Werte=Admin Benutzer)

      Die "news"-Datenbank muss das Feld Status enthalten
      (Feld:Status Sortierung:Text Typ:option Parameter:Zeilen=0, Werte=frei gesperrt)

      Beide Datenbanken und die Ausgabeseite sind somit auch problemlos erweiterbar um Zusätzliche Benutzerrechte oder einen zusätzlichen Status
      Im Script muss dazu nur ein weiteres "elsif ($Rang eq ...)" eingefügt werden.

      Danke für die Aufgabenstellung, auch ich hab wieder etwas dazugelernt

      Grüße
      Gong

     Antworten


     
 Liste der Einträge von 4650 bis 4800:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.09s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!