Seite 1 von 1

Permissions-Bug? View / Read vertauscht??

Verfasst: 18.02.2004 10:00
von Aqua
Hallo!

Das Forum namens "comments" soll in der Forums-Liste
auf index.php unsichtbar bleiben.

Dennoch soll ein User einzelne Postings die in dem Forum
enthalten sind sehrwohl mit einem eindeutigen Aufruf (z.B. viewtopic.php?t=1)
anzeigen können(!!!), auch wenn der Forums-Eintrag
in der Liste selbst unsichtbar bleibt...

Ich versuchte es dadurch,
dass ich im Administrations-Menü bei den Permissions
Read, Post, Reply, Edit .... auf ALL stellte,
aber VIEW hingegen auf "Admin" stellte.

Leider half das nichts,
und auch wenn ich einen direkten aufruf mache mit
viewtopic.php?t=1 sagt er mir dass ich einloggen muss
(obwohl das ja unter "READ" fallen würde was "ALL" darf)

Wie mache ich das so,
dass es tut, was ich möchte, bitte?

Danke! :P
Aqua

PS.: Auch wenn es unsinnig klingt was ich will,
das hat einen speziellen Grund - Bitte glauben =)

Verfasst: 18.02.2004 10:18
von Markus Wandel
Moin Moin,


also ich schätze mal das Du dich da ein kleines bischen vertust.

Um einen Thread lesen (READ) zu können muß man dieses auch sehen (VIEW) können.

Da Du aber das komplette Forum, wo sich dieser Thread befindetet, aber als "unsichtbar" deklariert hast, ist es dadurch keinem User möglich diesen entsprechenden Thread zulesen; auch nicht durch direktes verlinken dorthin.

Bye Bye

Verfasst: 18.02.2004 10:27
von Aqua
Hallo Markus Wandel!

Danke für Deine Antwort.

Gut dass ich das jetzt weiß dass es sich um keinen Bug handelt,
dennoch bleibt die Frage bestehen:

Wie mache ich dass das Forum in der Forums-Liste nicht mehr aufscheint,
aber für jedermall (ALL) lesbar bleibt bei Direkter verlinkung?

Es hat echt seinen Grund wieso ich das brauche
aber ist an dieser stelle relativ unwichtig (da zu langwierig) wieso ...

Danke! :P
Aqua

Verfasst: 18.02.2004 10:31
von Acid
Du könntest es über eine kleine Änderung an der index.php ausblenden (der blaue Teil is neu). Gilt für MySQL (ID des Forums anpassen).
default:
$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id
FROM (( " . FORUMS_TABLE . " f
LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id )
LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id )
WHERE f.forum_id != '1'
ORDER BY f.cat_id, f.forum_order";
break;
(Eventuell noch die ein oder andere Datei anpassen (z.B. wegen Suche oder Dropdown-Forumliste).)

Verfasst: 18.02.2004 10:56
von Aqua
Hallo Acid !!! :lol:

Das ist TOLLLL !!!!!
Danke, danke, danke !! =))

Das ist klasse und auch die Art WIE du es machst
_kann_ einfach keinen Fehler hinterlassen weil es einfach etwas
weniger selectiert als eines mehr

Das ist toll!!

Danke!

Du Acid,
soll ich selber suchen oder hast Du es auswendig
im Kopf in welchen anderen Dateien das "versteckte"
Forum mit ID 1 noch selectiert wird bzw. wo ich dort
was aendern soll?!

Also wenn es Dir nicht zuviele Umstaende macht würde mich das
sehr freuen !

Danke!
Aqua :P

Verfasst: 18.02.2004 11:10
von Acid
z.B. search.php (Suche) und functions.php (Dropdown-Forumliste).
Wird ein Forum noch sonstwo angezeigt !?

Verfasst: 18.02.2004 11:26
von Aqua
Hallo Acid!
Acid hat geschrieben:z.B. search.php (Suche) und functions.php (Dropdown-Forumliste).
Wird ein Forum noch sonstwo angezeigt !?
Also in search.php ist das alles VIEL zu schwierig,
das wird zu unüberschaulich für mich,
bitte sag mir wieder wo das hinsoll.

Ich glaube bei search.php gehört sogar mehr als einmal
ein MySQL-Statement geaendert.

Und zu functions.php ... meinst Du das in dem Ordner "includes" ?
Da sind mehrere functions ...

functions_admin.php
functions_post.php
functions_search.php
functions_selects.php
functions_validate.php

Ich geh mal davon aus Du meinst das normale "functions.php"
im Ordner "includes" oder anderes DIR ?

Bitte sag mir da auch was GENAU ich austauschen soll
weil das ist zu schwierig für mich, ich will keinen Bug reinbauen ...

Daaaanke!
Aqua!

PS.: Ich habs ehrlich versucht aber das ist mir noch zu hoch ... sorry =/

Verfasst: 18.02.2004 12:16
von Acid
functions.php
$sql = "SELECT *
FROM " . FORUMS_TABLE . " WHERE forum_id != '1'
ORDER BY cat_id, forum_order";
search.php
// Ergebnisse als Themen
$sql = "SELECT t.*, f.forum_id, f.forum_name, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time
FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2
WHERE t.topic_id IN ($search_results) AND f.forum_id != '1'
// Ergebnisse als Beiträge
$sql = "SELECT pt.post_text, pt.bbcode_uid, pt.post_subject, p.*, f.forum_id, f.forum_name, t.*, u.username, u.user_id, u.user_sig, u.user_sig_bbcode_uid
FROM " . FORUMS_TABLE . " f, " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TEXT_TABLE . " pt
WHERE p.post_id IN ($search_results) AND f.forum_id != '1'
// Auflistung des Forums in Suchmaske
$sql = "SELECT c.cat_title, c.cat_id, f.forum_name, f.forum_id
FROM " . CATEGORIES_TABLE . " c, " . FORUMS_TABLE . " f
WHERE f.cat_id = c.cat_id AND f.forum_id != '1'
// Resultat bei Suche nach unbeantworteten Themen
$sql = "SELECT topic_id
FROM " . TOPICS_TABLE . "
WHERE topic_replies = 0 AND forum_id != '1'
AND topic_moved_id = 0";
// Resultat bei Suche nach eigenen Themen
$sql = "SELECT post_id
FROM " . POSTS_TABLE . "
WHERE poster_id = " . $userdata['user_id'] ." AND forum_id != '1'";
// Resultat bei Suche nach Themen seit letztem Besuch
$sql = "SELECT post_id
FROM " . POSTS_TABLE . "
WHERE post_time >= " . $userdata['user_lastvisit'] . " AND forum_id != '1'";
// Resultat bei Suche nach allen Themen eines Users (über Profil)
$sql = "SELECT post_id
FROM " . POSTS_TABLE . "
WHERE poster_id IN ($matching_userids) AND forum_id != '1' ";
// Resultat bei normaler Suche mit Ergebnisse als Themen
$sql = "SELECT topic_id
FROM " . POSTS_TABLE . "
WHERE forum_id != '1' AND post_id IN (" . implode(", ", $search_id_chunks[$i]) . ")
$where_sql
// Resultat bei normaler Suche mit Ergebnisse als Beiträge
$where_sql = ( $search_author == '' && $auth_sql == '' ) ? 'post_id IN (' . implode(', ', $search_id_chunks[$i]) . ')' : 'forum_id != "1" AND p.post_id IN (' . implode(', ', $search_id_chunks[$i]) . ')';

DANKE

Verfasst: 18.02.2004 12:51
von Aqua
Daaaanke Acid !
Vielen lieben Dank!!!! ;o))

LG
Aqua