friendsofredaxo / accessdenied Goto Github PK
View Code? Open in Web Editor NEWAccess Denied: Artikel oder Kategoriezugriff im Frontend sperren (offline + kein Zugriff)
License: MIT License
Access Denied: Artikel oder Kategoriezugriff im Frontend sperren (offline + kein Zugriff)
License: MIT License
Das Sperren eines Startartikels oder des Mountpoints einer Yrewrite Domain führt zu einer redirect Schleife.
Folgende Error Meldung:
Error | Call to a member function getValue() on null | redaxo/src/addons/accessdenied/boot.php | 23
REDAXO 5.7.0-beta2
PHP Version 7.2.11
MySQL 5.6.19
Gibt es dafür eine Lösung?
Danke!
VG, Geri
sollte es nicht accessdenied/lang/en_gb.lang sein?
Online/Offline-Button beim Artikel ist weg nachdem das Addon deinstalliert wurde und der Artikel vorher auf "gesperrt" gestellt war.
muss das hier in diesem Addon gefixt werden?
Von meiner Seite aus könnten wir das Addon aus dem Hauptmenü nehmen - einmal eingestellt wird es vermutlich nie wieder angefasst und benötigt nicht diese Omnipräsenz.
Meines Erachtens ist eine Sperrung etwas, das weiter geht als offline schalten, und sollte demzufolge auch mit status = -1
eingetragen werden.
aktuell wird die css datei dieses addons immer geladen:
Line 18 in 7df1d64
können wir hier ein IF drann packen, dass das ein wenig einschränkt?
brauchen wir das css wirklich auf allen redaxo backend seiten?
@skerbis siehst du da ein Problem, Zahlen und Sonderzeichen zuzulassen sowie bei der Installation eine zufällige Zeichenfolge zu setzen?
Zumindest Zahlen sollten drin sein - so kann man das Feld wie ein Passwort behandeln und nicht bei beliebigen REDAXO-Seiten erraten, dass man mit preview=1
an Daten rankommt, die eigentlich geschützt sind.
Coole Sache das Addon.
Toll wäre es noch, wenn man einen Sharing-Link (Hash) erstellen könnten, mit welchem man die jeweilige gesperrte Seite auch ohne Login anschauen könnte.
Das wäre ideal, um einem Kunden eine Änderung kurz zeigen zu können, welcher selber nicht in das Backend geht bzw. seine Seite pflegen lässt.
Ist man im Backend via Domain 1 eingeloggt, kann man Inhalte von Domain 2 nicht als Admin ansehen, da man als "nicht eingeloggt" gilt.
Es wäre super, wenn accessdenied eine Einstellung analog zum Maintenance-Addon bietet, mit der man IPs oder einen Secret-Key mitgeben kann, der dann ausgewertet wird. accessdenied sollte dabei auch in der Struktur den Link "Artikel anzeigen" präparieren.
/cc @marcohanke
Update, es wurde ein neues AddOn, weil ich auch online / offline verändert habe.
Meine Variante vererbt die Eigenschaft auch.
https://github.com/KLXM/locked
Hi zusammen,
kurze Frage zu den Weiterleitungen von accessdenied. Wir haben gerade folgenden Fall, dass ein Kunde Weiterleitungen eines Artikels in yrewrite konfiguriert hat und den Artikel gesperrt hat. Es scheint so zu sein, dass die Umleitung auf die Fehlerseite durch accessdenied noch greift, bevor die konfigurierte Umleitung aus YRewrite zieht.
Zur eigentlichen Frage: Wäre es nicht sinnvoll, wenn accessdenied vor der Umleitung auf die Fehlerseite prüft, ob yrewrite vorhanden ist und gegebenfalls die Umleitung aus YRewrite greift?
if(rex::isBackend() && rex_backend_login::hasSession() && 'content/edit' == rex_be_controller::getCurrentPage()) {
rex_extension::register('URL_REWRITE', "url_rewrite_accessdenied", rex_extension::LATE);
}
function url_rewrite_accessdenied($ep) {
$params = $ep->getParams();
if(rex_article::get($params['id'])->getValue('status') == 2) {
return $ep->getSubject().'?secret='.rex_config::get('accessdenied', 'secret');
}
}
InvalidArgumentException: Scalar expected for $needle in arrayKeyCast(), got NULL!
File: src/core/lib/request.php
Line: 207
Function | File | Line |
---|---|---|
rex_request::arrayKeyCast | src/core/lib/request.php | 55 |
rex_request::request | src/core/functions/function_rex_globals.php | 66 |
rex_request | src/addons/accessdenied/boot.php | 28 |
rex_package->{closure} | src/core/lib/extension.php | 52 |
rex_extension::{closure} | src/core/lib/util/timer.php | 57 |
rex_timer::measure | src/core/lib/extension.php | 63 |
rex_extension::registerPoint | src/core/packages.php | 33 |
include_once | src/core/frontend.php | 16 |
require | src/core/boot.php | 143 |
require | public/index.php | 12 |
REDAXO | |
---|---|
Version | 5.13.3 |
PHP | |
---|---|
Version | 7.4.28 |
OPcache | yes |
Xdebug | no |
Database | |
---|---|
Version | MariaDB 10.3.31 |
Character set | utf8mb4 |
Server | |
---|---|
OS | Linux |
SAPI | fpm-fcgi |
Webserver | nginx/1.18.0 |
Request | |
---|---|
Browser | Chrome/102.0.5005.63 |
Protocol | HTTP/2.0 |
HTTPS | yes |
Packages | |
---|---|
accessdenied | 2.0.0 |
adminer | 1.9.2 |
auto_delete | 1.0-dev |
backup | 2.8.1 |
be_password | 2.0.0 |
be_style | 3.0.2 |
be_style/customizer | 3.0.2 |
be_style/redaxo | 3.0.2 |
be_style_fluent | 3.1.2 |
bloecks | 3.1.1 |
bloecks/cutncopy | 3.1.1 |
bloecks/status | 3.1.1 |
consent_manager | 3.0.7 |
cronjob | 2.8.2 |
cronjob/article_status | 2.8.1 |
cronjob/optimize_tables | 2.8.1 |
debug | 1.2.1 |
developer | 3.9.0 |
epcqrcode | 1.0.3 |
events | 3.0.0-dev4 |
feeds | 3.3.0-beta1 |
focuspoint | 4.0.1 |
global_settings | 2.8.1 |
install | 2.9.3 |
mailer_profile | 1.0.1 |
maintenance | 2.7.7 |
media_manager | 2.12.3 |
media_manager_responsive | 0.5.1-dev |
mediapool | 2.11.3 |
metainfo | 2.8.5 |
mform | 7.0.2.beta |
mform/docs | 1.1 |
msg | dev |
phpmailer | 2.11.2 |
plus_bs5 | 0.0.5 |
project | dev |
project_manager | 1.4.0 |
project_manager/client | 1.1.0 |
qanda | 2.0.9 |
quick_navigation | 5.3.1 |
redactor | 2.3.0 |
search_it | 6.9.0 |
search_it/documentation | 6.9.0 |
speed_up | 1.1.5 |
sprog | 1.3.0 |
structure | 2.13.3 |
structure/content | 2.13.3 |
structure/history | 2.13.3 |
url | 2.0.1 |
users | 2.8.2 |
ydeploy | 1.1.0 |
yform | 4.0.2 |
yform/email | 4.0.2 |
yform/manager | 4.0.2 |
yform_field | 2.0 |
yform_geo_osm | 1.2.6 |
yform_spam_protection | 2.0.0-beta |
yform_usability | 2.0.5-dev |
yrewrite | 2.8.3 |
yrewrite_metainfo | 1.0.2 |
zip_install | 1.2 |
Folgendes Szenario das bei meinem Kunden zu irritationen führt:
Warum? Die URL in der Browser Historie ruft erneut die Statusänderung auf. Lässt sich das verhindern?
Ich würde gerne auch bei aus YForm (optional mittels URL-Addon) generierten Seiten diese Funktion nutzen können, also sprich:
Lässt sich das mit accessdenied-Bordmitteln umsetzen? Gibt es eine Methode, der ich sagen kann: Wenn du 2 bist, dann nur im Backend eingeloggt anzeigen, sonst Weiterleitung zur Fehlerseite?
Ist das überhaupt hier in accessdenied gewünscht? Oder wäre so etwas eher ein Trick?
Ein Automatismus / Einzeiler fürs Template fände ich am sinnvollsten hier aufgehoben.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.