Berechtigung bei Suchergebnissen

In this board you can talk about general questions about phpMyFAQ

Moderator: Thorsten

Post Reply
chris
Posts: 8
Joined: Thu Jul 15, 2021 3:34 pm

Berechtigung bei Suchergebnissen

Post by chris »

Hallo,

habe dazu nichts gefunden...
Ich möchte das Tool nicht als öffentliches FAQ sondern eher als Wissensdatenbank für einen geschlossenen Benutzerkreis und mit Berechtigungen beim Zugriff auf bestimmte Kategorien nutzen.

Habe also Gruppen, Kategorien usw. angelegt und den Gruppen Zugriffsrechte auf entsprechende Kategorien eingeräumt.
Diese Hauptkategorien unterteile ich nochmals in einen Allgemeinen und einen Internen Bereich.
Die Hauptkategorien werden auf der Hauptseite angezeigt.
Soweit alles schick.

2 Dinge:

[b]1. Unschön: [/b]Beim Zugriff auf eine Kategorie ohne Berechtigung erscheint ein 404 Page not Found. Damit kann ich leben, wäre aber schöner wenn dort auch einfach schon ein "Zugriff verweigert" ausgegeben würde.

[b]2. Echtes Problem: [/b]Wenn ich allerdings eine Suche auf ein Stichwort durchführe, werden auch Treffer aus Kategorien angezeigt, auf die der Benutzer eigentlich keinen Zugriff hat. Erst wenn er den Beitrag klickt kommt korrekt ein "Zugriff verweigert".
Wenn dabei "nur" die Fragen angezeigt werden würden, ist das zwar auch schon unschön, aber das ginge wohl gerade noch, dadurch dass darunter allerdings ein Auszug der Antwort angezeigt wird, wird die Berechtigungsidee ausgehebelt.

Mache ich etwas falsch, gibt es eine Konfiguartionsmöglichkeit/workarround dafür oder muss ich selbst an den Code ran?

Grüße und vorab schon einmal der Dank für hilfreiche Antworten.
chris
Posts: 8
Joined: Thu Jul 15, 2021 3:34 pm

Re: Berechtigung bei Suchergebnissen

Post by chris »

Hallo,

habe es selbst gelöst und um nicht zu tief einzugreifen nur /search.php angepasst.

Filtere dort NACH Rückgabe von ->search die $searchResults via $faq->getRecordResult

Kann man sicher schöner lösen, wenn man die queries um die permission Abfrage erweitert, aber so ging es mit wenig Zeitaufwand und falls neue Updates ohne das Feature kommen, kann man das schnell anpassen.

Faq-Klasse einbinden und dann:
[code]
$searchResults = $faqSearch->search($inputSearchTerm, $allLanguages);

// CS:2021-07-16 start
foreach ($searchResults as $k=>$v){
$cs_res = $faq->getRecordResult($v->id, $v->lang);
if (0 === $cs_res->num_rows) {
$cs_res = $faq->getRecordResult($v->id, $defaultLanguage);
}
if (0 === $cs_res->num_rows) {
unset ($searchResults[$k]);
}
}
// CS:2021-07-16 end

$faqSearchResult->reviewResultSet($searchResults);
[/code]


Grüße

PS: Code und Einrücken geht leider nicht deshalb keine schöne Anzeige des Codes und zuaätzlich erscheinen Fehler am Seitenanfang:

[phpBB Debug] PHP Warning: in file [ROOT]/vendor/s9e/text-formatter/src/Parser.php on line 186: call_user_func_array() expects parameter 1 to be a valid callback, class 's9e/TextFormatter/Parser/FilterProcessing' not found
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4564: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3314)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4564: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3314)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4564: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3314)
Thorsten
Posts: 15373
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Re: Berechtigung bei Suchergebnissen

Post by Thorsten »

Hi,

ja, irgendwas am Forum klemmt, ich bin da dran.

Woher kommt dein $defaultLanguage im Code-Schnipsel?

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
Post Reply