0

Benutzerrechte Steuerung

Das ist das grobe Schema. Wie bekomme ich es hin das jeweils nur ein benutzer eine Filiale bearbeiten, Disponieren kann? Die anderen in dieser zeit keine Schreibrechte haben auf diese Filiale, jedoch alle anderen nicht benutzten Filialen bearbeiten können. (15 Filialen )

Der zugriff erfolgt über die Tabelle Planung 

Zusammen geführt werden die Daten über den Button Disponieren:

 

if Planzeit = null or Auslieferdatum = null or Filiale = null or Lieferkosten = null or Montagekosten = null or Ferntourzuschlag = null or Tour = null then
alert("Lieferkennzeichen unvollständig, bitte alle Felder ausfüllen")
else
let me := this;
let myR := first(select Pool where KV = me.Suchfeld);
let KVN := Suchfeld;
do as server
for i in (select CSVin)[Spalte4 = KVN] do
delete i
end
end;
let Li := Lieferkosten;
let Mo := Montagekosten;
let Pl := Planzeit;
let Fer := Ferntourzuschlag;
let To := first((select Planung).text(Tour));
let Na := first((select Pool).myR.Name);
let FilialeN := first((select Planung).text(Filiale));
let Inh := first((select Pool).Inhalt);
let Aus := Auslieferdatum;
let new := (create Disponiert);
new.(KV := KVN);
new.(LF := Li);
new.(Tour := To);
new.(MK := Mo);
new.(PZ := Pl);
new.(FT := Fer);
new.(Name := Na);
new.(Filiale := FilialeN);
new.(Datum := Aus);
new.(Inhalt := Inh);
Suchfeld := null;
Lieferkosten := null;
Montagekosten := null;
Ferntourzuschlag := null;
Tour := null;
Planzeit := null;
Auslieferdatum := null;
Filiale := null;
delete myR
end

 

Daten stammen aus der CSV (Tabelle CSVin ) diese daten werden ausgewertet und in den Pool geschrieben :

 

do as server
for i in (select CSVin)[Spalte7 = 1 and Spalte2 = format(date(today()), "YYYYMMDD")] do
let myNextId := min((select CSVin)[Spalte7 = 1 and number(Nr) > i.number(Nr)].number(Nr));
let new := (create Pool);
new.(KV := i.Spalte10);
new.(Vorname := i.Spalte12);
new.(Name := i.Spalte11);
new.('Straße' := i.Spalte13);
new.(PLZ := i.Spalte15);
new.(Ort := i.Spalte16);
new.(Tele := i.Spalte17);
new.(Mail := i.Spalte37);
new.(VK := i.Spalte32);
new.(Auslieferlager := i.Spalte26);
new.(Anlieferlager := i.Spalte25);
new.(Reklakennzeichen := i.Spalte31);
new.(Lieferkennzeichen := i.Spalte30);
new.(Inhalt := join((select CSVin)[number(Nr) > i.number(Nr) and number(Nr) < myNextId and Spalte7 = 4 and Spalte2 = format(date(today()), "YYYYMMDD")].(Spalte17 + Spalte18 + Spalte19), "
"))
end
end

 

Hat jemand eine Idee ??

6 Antworten

null
    • Michi.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Brauch wirklich hilfe bitte, denn ohne den Baustein ist es nicht zu verwirklichen....

    Danke

    • Carsten_Losch
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Wenn die Filiale ein einfacher Datensatz in einer Tabelle ist, würde ich es über ein Feld Datensatz Sperren Machen., hier den Feldtyp User und dann in den Rechten prüfen ob ein Eintrag ausgewählt ist, Ist ein Eintrag ausgewählt darf nur der ausgewählt User bearbeiten, ist keiner ausgewählt, durfen alle bearbeiten...

     

    Viele Grüße, Carsten 

    • Michi.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    In der tabelle Planung sind genau 5 Datensätze. Einer pro benutzer. Da diese Einträge weitergegeben werden und nach dem disponieren auf Null gesetzt sind. 

    Meine Probleme habe ich den Button Disponieren in Abhängigkeit der Auswahl Filiale sichtbar zu machen oder nicht.  Hierzu hab ich ein auswahlfeld für die Filialen. Bei änderung wird für jede Filiale ein ja/nein Feld auf true oder Null gesetzt pro Filiale. 

    Wie bekomm ich es aber hin das nur der 1. Benutzer welche die Filiale ausgewählt hat, den Button Disponieren sieht? Die anderen können die filiale anwählen und schauen aber nicht disponieren. Am besten noch mit einem Hinweis welcher Nutzer die Filiale gerade disponieren kann. Also der 1. War.

    Das zweite wir bekomm ich es hin das in der tabelle Planung nur der jeweilig angemeldete benutzer auch nur seinen eigenen Datensatz sieht.

    Benutzer sind in Rollen nach Namen eingeteilt. Somit ist auch der Datensatz ersteller = benutzer. Außer bei mir. Da bin ich admin und ersteller ist zub 

    • Carsten_Losch
    • vor 4 Jahren
    • Gemeldet - anzeigen

    'Erstellt von' = user() or userIsAdmin() or userHasRole("editor") or 'Visible for' = user()

     

    na ja, ich habe dafür das Feld visible for mit dem feldtyp benutzer, und da steht halt der User drin, der derzeit ändern darf.. alle anderen dürfen nicht schreiben... 

    unter Felder bearbeiten findest du Schreibbar von.... 

    das zweite sollte über sichtbar für und dann erstellt von = User gehen... 

    • Michi.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Danke dir, das Problem ist aber nur den ersten juser welcher eine Filiale auswählt den Button disponieren zu zeigen. Alle anderen können zwar die Filiale anwählen , alles sehen filtern ect. Jedoch nicht disponieren.

    • Michi.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Die Frage ist wie bekomm ich die zeitliche Komponente bei der Auswahl von Filiale bzw. Der dazugehörigen ja/nein Geschichte rein. Das ninox erkennt wer zuerst ausgewählt hat.