0

Button zur Abfrage eines passwords

 Über den Button "Ändern" möchte ich eine password-Abfrage anstoßen und erst nach richtigem Password (in den Betriebsparametern hinterlegt und nur im admin-Modus sichtbar) wird der Modus "Gesperrt" auf "nein" gesetzt.

Gibt es dafür eine Lösung?

11 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 6 Monaten
    • Gemeldet - anzeigen

    Hallo, Wenn in den Einstellungen lediglich ein Datensatz existiert und dort nur ein einziges Passwort hinterlegt ist, das zu Änderungen berechtigt, könnte man so (oder ähnlich) vorgehen:
     

    let myPass := 'Eingabe password';
    if first(select Einstellungen).Passwort = myPass then
       Gesperrt := false
    end
    

    Die Tabellen- und Feldbezeichnungen wären ggf. durch die tatsächlichen zu ersetzen.

      • Apotheker für Offizinpharmazie
      • apothekenservice
      • vor 6 Monaten
      • Gemeldet - anzeigen

      Vielen Dank für den Tip, aber die Problematik ist, dass ich bei einem gesperrten Datensatz wie angezeigt, keine Eingaben im feld "Eingabe password" machen kann. Ich müsste erst durch den Druck auf den Button "Ändern" eine Passworteingabe erzwingen, die entsprechend überprüft wird und erst wenn dies positiv ist, wird der Datensatz freigeschaltet

      • Developer by Smartplanung
      • smartplanung
      • vor 6 Monaten
      • Gemeldet - anzeigen

       

      Man könnte über kleine Umwege auf eine andere Tabelle/Page leiten, wo man ein Passwort eingeben muss. Zusätzlich schreibt man dort in ein weiteres Feld die RecordID des zuvor verlassenen Datensatzes. Dann kann man über einen Button die Passworteingabe bestätigen, und wieder zum ursprünglichen Datensatz zurückleiten. Das Feld mit der RecordID wieder leeren.

      Im gesperrten Record dann unter „Schreibbar wenn“ auf das Passwortfeld referenzieren.

      Man kann das dann noch erweitern, indem man den Record (eigentlich die Tabelle) wieder sperrt, indem man das Passwort entfernt. Oder man lässt die RecordID stehen und gleicht entsprechend ab.

      • Apotheker für Offizinpharmazie
      • apothekenservice
      • vor 6 Monaten
      • Gemeldet - anzeigen

      hallo Patrick, sieht ja nicht so einfach aus... aber vielleicht krieg ich es ja doch noch hin. Schade, dass es anscheinend in ninox noch keine Eingabemaske für den User gibt, wo man ein Fenster öffnet und der User sein password eingeben muss und dann die Prüfung per script erfolgt.

      • Apotheker für Offizinpharmazie
      • apothekenservice
      • vor 6 Monaten
      • Gemeldet - anzeigen

      Vielleicht gibt es einen Weg über die Funktion "dialog" ??

      • Developer by Smartplanung
      • smartplanung
      • vor 6 Monaten
      • Gemeldet - anzeigen

       

      Ja es gibt leider keine direkte Funktion, welche es ermöglicht einen Input-Dialog zu erzeugen. Es gibt noch die Möglichkeit mit Dialog + HTML/Javascript etwas zu erstellen. Hätte dabei den Vorteil, dass man ein richtiges Passwortfeld nutzen kann, welches die Eingabe verbirgt.

      Das ginge aber auch mit einem Formelfeld. Muss also nicht zwangsläufig ein Dialog sein.

      • Apotheker für Offizinpharmazie
      • apothekenservice
      • vor 6 Monaten
      • Gemeldet - anzeigen

      könntest Du mir vielleicht ein Beispiel zeigen? Ich beschäftige mich erst seit ca. 3 Monaten mit Ninox - somit Grünschnabel

      • Developer by Smartplanung
      • smartplanung
      • vor 6 Monaten
      • Gemeldet - anzeigen

       

      Folgendes in ein Formelfeld eintragen:

      html(---
      <input type="password" onchange="database.update('{ raw(this) }', 'I2', this.value)"/>
      ---)
      

      raw(this) ist die Tabelle, wo sich das zu editierende Feld befindet, 'I2' ist entsprechend die ID des Feldes und this.value ist der Wert im HTML Input Feld.

      Für die Feld-ID herauszufinden gibt es hier eine Möglicheit:

      https://forum.ninox.de/t/g9hdxh1/ninox-feld-ids-fur-http-anfragen-auerhalb-ninox-ermitteln

    • Ninox-Professional
    • planoxpro
    • vor 6 Monaten
    • Gemeldet - anzeigen
     said:
    Vielleicht gibt es einen Weg über die Funktion "dialog" ??

    Wenn das Passwort bspw. nur aus Ziffern besteht, kann man mit Buttons arbeiten:

    let myDigits := 4;
    let dTitel := "Bitte " + myDigits + "-stellige PIN eingeben";
    let dOptions := ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
    let myPw := "";
    for i from 1 to myDigits + 1 do
        let dText := html("<H2 align=center>" + myPw + "_</H2>");
        myPw := myPw + dialog(dTitel, dText, dOptions)
    end;
    if first(select Einstellungen).Passwort = myPw then
        alert("Passwort korrekt!")
    else
        alert("Passwort nicht korrekt!")
    end;
    

    Dia Anzahl der Stellen lässt sich in der ersten Zeile anpassen.

      • Apotheker für Offizinpharmazie
      • apothekenservice
      • vor 6 Monaten
      • Gemeldet - anzeigen

      Guten Morgen allerseits! Vielen Dank für die Tips und die tolle Hilfestellung!

      ich werde wohl die letztgenannte Variante wählen. Einen schönen Sonntag wünsche ich euch

      • little_giant
      • vor 3 Monaten
      • Gemeldet - anzeigen

      Das ist ja eine prima Lösung! Ich verstehe allerdings nicht, wo/wie ich das Passwort definieren kann?

Content aside

  • vor 3 MonatenZuletzt aktiv
  • 11Antworten
  • 131Ansichten
  • 4 Folge bereits