Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

Berechtigung zum Bearbeiten für eine bestimmte Zeit

Eingetragen von Micha1111 (290)
am 21.07.2014 - 08:08 Uhr in
  • Modul-Entwicklung
  • Drupal 7.x oder neuer

Der User soll bei der Erstellung eines Nodes festlegen können, innerhalb welcher Zeit andere User diesen Node bearbeiten können.
Dazu gibt es ein Feld Startdatum und ein Feld Enddatum in diesem Inhaltstypen.

Als Steigerung wäre noch interessant, wenn der User auswählen könnte, welcher Rolle diese anderen User angehören müssen, oder sogar, dass nur ganz konkrete User aus einer Liste das dürfen.

Wie lässt sich so etwas realiesieren ?

Ich habe noch kein Modul gefunden, dass eine zeitweise Berechtigung einstellen lässt.
Rules scheint mir nicht geeignet zu sein, weil der Zeitraum nicht vom Erstelldatum abhängen soll.

Irgendwie müsste abgefragt werden, ob dass aktuelle Datum zwischen Start- und Enddatum liegt.

Bin für jede Idee dankbar.

‹ [gelöst] Ansatz - read only felder [gelöst]Vokabular Terms erstellen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

das kann rules leisten

Eingetragen von ronald (3857)
am 21.07.2014 - 08:35 Uhr

Ich wüßte keinen anderen Ansatz, außer du willst ein eigenes Modul schreiben.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, für eine

Eingetragen von Hyp1 (1463)
am 21.07.2014 - 10:05 Uhr

Hallo,

für eine zeitgesteuerte Funktion würde ich einen Cron Job nehmen.
Füge eine Checkbox zu deinem Inhaltstypen zu.
Im Cron Job prüfst Du das Enddatum in der Datenbank und setzt
das Checkbox Feld in der DB entsprechend.
Im hook_form_alter kannst Du vor der Ausgabe der Inhaltstyp Form prüfen
ob das Checkbox Feld gesetzt ist.
Wenn ja dann Redirectest Du nach 403 Forbidden.

Zitat:

Als Steigerung wäre noch interessant, wenn der User auswählen könnte, welcher Rolle diese anderen User angehören müssen, oder sogar, dass nur ganz konkrete User aus einer Liste das dürfen.

Da wäre ich aus Sicherheitsgründen sehr vorsichtig!

MfG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Schon mal Danke für die

Eingetragen von Micha1111 (290)
am 21.07.2014 - 21:15 Uhr

Schon mal Danke für die Antworten.

Bei Rules habe ich bereits das Problem, was eigentlich auslösendes Event sein soll.

CronJob würde dauernd ausgeführt werden, obwohl es vielleicht gar nicht nötig ist.

Ich denke, die Richtung eigenes (oder fremdes) Modul ist anzupeilen, also mit einer

function mymodule_access ()

die den aktuellen User und seine Rolle abfragt
die den Inhaltstyp des Nodes abfragt
die den Datums(und Uhrzeit)wert des Feldes Startdatum in diesem Node abfragt
die den Datums(und Uhrzeit)wert des Feldes Enddatum in diesem Node abfragt
die das aktuelle Datum abfragt und vergleicht
und
wenn das aktuelle Datum zwischen Start- und Enddatum liegt

return NODE_ACCESS_ALLOW;

oder wenn nicht

return NODE_ACCESS_IGNORE;

zurückgibt.

Ich habe allerdings keinen Plan, wie ich das mit meinen eher rudimentären PHP-Kenntnissen umsetzen kann.

Bin auch für Hinweise auf andere Module, die mit dem Auslesen und Vergleichen von Datumsfeldern arbeiten, dankbar.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, mymodule_access würde ja

Eingetragen von Hyp1 (1463)
am 21.07.2014 - 23:04 Uhr

Hi,

mymodule_access würde ja bei jedem Node Zugriff ausgeführt
werden, was wohl die deutlich schlechter Wahl wäre, wie ein Cron Job!
Diesen könntest Du ggf. 1x am Tag ausführen lassen.

MfG

  • Anmelden oder Registrieren um Kommentare zu schreiben

natürlich läuft rules nur

Eingetragen von ronald (3857)
am 22.07.2014 - 10:43 Uhr

in Verbindung mit Cron.

Cron ist genau für solche Dinge gedacht.
Er läuft regelmäßig und schaut ob es etwas zu tun gibt.
Wenn due den Cron über einen echten Cronjob aufrufst, wird dieser unabhängig von Besuchern verlässlich ausgeführt.

Dabei können entweder rules überprüft, oder eigene Jobs durchgeführt werden.

Je nach komplexität der Aufgabe kann es sinnvoll sein, dies in einem eigenen Modul zu kapseln, oder eben über Rules zu konfigurieren.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Best Practices for Plain Text Notes
  • gepatchte PHP Version 7.4 für Windows
  • Canvas Palette: Eine fertige Komponentenbibliothek für Drupal Canvas
  • Hilfe zu Updates oder Composer
  • Vergleich Drupal und Contao
  • [geloest] Blocks in Bootstrap nebeneinander darstellen und nicht untereinander
  • DrupalCamp Frankfurt 27-28 November 2026
  • Bitte mein Bentzerkonto löschen
  • Beim Aufruf einiger Inhalte erhalte ich folgende Fehlermeldung
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
Weiter

Neue Kommentare

  • Muss ja nicht genau php 8.3 sein
    vor 2 Tagen 6 Stunden
  • Guten morgen und Danke
    vor 2 Tagen 13 Stunden
  • Evtl. versuchen auf PHP 8 zu wechseln
    vor 2 Tagen 19 Stunden
  • Danke Schmittrich. Die Frage
    vor 4 Tagen 11 Stunden
  • Keine Antwort auf die Frage nach dem Woher
    vor 4 Tagen 13 Stunden
  • Danke ich werde mir die
    vor 6 Wochen 2 Tagen
  • Vielen Dank für Ihren
    vor 6 Wochen 5 Tagen
  • Composer ist sehr ratsam
    vor 6 Wochen 6 Tagen
  • Vielen Dank für den
    vor 7 Wochen 2 Tagen
  • Die alten CMS Vergleiche von contentmanager.de
    vor 7 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250324
Registrierte User: 20571

Neue User:

  • alxshell
  • FesObsemo
  • AnthonyhoF

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 17 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association