Smarty + Berechtigung + Unread Comments

76
Bug #
Priorität4 (▼ Niedrig)
BereichCommenting
TitleSmarty + Berechtigung + Unread Comments
BeschreibungWenn man keinen Zugriff auf das Template hat, sollen auch die Comments nicht unread markiert werden.
Reported by @
 
Git Commit
Assigned to @ 02.08.2004 10:30
StatusResolved @ 76
1 up | 2 up | 3 up | 4 up |
^^^ Additional posts ^^^
zorg.ch
#40119 by @ 30.07.2004 09:08 - nach oben -
Ich mach erstmal einfach dass Einträge älter als 1 Monat aus comments_unread gelöscht werden.
zorg.ch
#40120 by @ 30.07.2004 09:23 - nach oben -
Kann mir jemand damit helfen?

DELETE FROM comments_unread
INNER JOIN comments ON (comments.id = comments_unread.comment_id)
WHERE UNIX_TIMESTAMP(date) < (UNIX_TIMESTAMP(now())-60*60*24*30)
ORDER BY date desc
zorg.ch
#40125 by @ 30.07.2004 09:31 - nach oben -
DELETE FROM comments_unread
INNER JOIN comments ON (comments.id = comments_unread.comment_id)
WHERE UNIX_TIMESTAMP(comments.date) < (UNIX_TIMESTAMP(now())-86400*60)
//ORDER BY date desc <-- wiso order bei nem delete ?

ich hab 60 tage draus gemacht...
zorg.ch
#40131 by @ 30.07.2004 09:34 - nach oben -
haha :-)
zorg.ch
#40133 by @ 30.07.2004 09:35 - nach oben -
hm....
geht auch nicht...
#1064 - You have an error in your SQL syntax.

Check the manual that corresponds to your MySQL server version for the right syntax to use near
'INNER JOIN comments ON ( comments.id = comments_unread.comment
zorg.ch
#40137 by @ 30.07.2004 09:42 - nach oben -
hm...strub, die datensätze sind jedenfalls gelöscht.
zorg.ch
#40140 by @ 30.07.2004 09:44 - nach oben -
scho? und was soll ich jetzt ins cronfile werfen?
zorg.ch
#40147 by @ 30.07.2004 10:12 - nach oben -
ka...mach mal statt delete nen select...du kriegst keine datensätze...ist strub
zorg.ch
#40150 by @ 30.07.2004 10:45 - nach oben -
Mit select bekomme ich Datensätze.
zorg.ch
#40151 by @ 30.07.2004 10:49 - nach oben -
JOIN in DELETE ist glaub uncool.

DELETE FROM comments_unread
USING comments, comments_unread
WHERE comments.id = comments_unread.comment_id
AND UNIX_TIMESTAMP(date) < (UNIX_TIMESTAMP(now())-60*60*24*30)


hat funktioniert.
zorg.ch
#40155 by @ 30.07.2004 11:34 - nach oben -
60*60*24*30 <-- find ich nicht sehr schön, kannst ja grad ausgerechnet hinschreiben.
Additional posts
zorg.ch
#40121 by @ 30.07.2004 09:25 - nach oben -
Ok, es muss wohl schon so gemacht werden, aber es wäre wohl schöner wenn die Berechtigung in einer Thread-Table gespeichert werden könnte.
zorg.ch
#40134 by @ 30.07.2004 09:36 - nach oben -
Du willst ja eh ne Thread Tabelle machen, dann ist das ja kein Problem.
zorg.ch
#40141 by @ 30.07.2004 09:44 - nach oben -
tjo... ein weiterer Grund warum diese wichtig ist.
zorg.ch
#40143 by @ 30.07.2004 09:48 - nach oben -
berechtigung in thread-table ist für alles ausser forum scheisse und überhaupt nicht dynamisch. weil wenn ich die berechtigung auf einem template ändere, kriegt die thread-table das nicht mit. es besteht die gefahr von inkonsistenten daten...
zorg.ch
#40145 by @ 30.07.2004 09:53 - nach oben -
aber auf deine art besteht die Gefahr dass das Forum am schluss X felder und funktionen drin hat für fremde sections.
zorg.ch
#40225 by @ 30.07.2004 21:44 - nach oben -
das forum soll eben genau keine felder für fremde sections haben. deswegen sollen die berechtigungen auch aus der smarty-table genommen werden. wenn comments in fremden sections eingesetzt werden können, müssen halt auch daten von fremden sections verwendet werden..
zorg.ch
#40419 by @ 02.08.2004 10:32 - nach oben -
Feld nicht, aber eine fremde Funktion wirds in diesem Fall benötigen. Aber ich machs mal, bin einverstanden...
Ich müsste nur mal eine art finden, wie man N-Fremde Commenting Sachen edel einbinden kann. (Hab momentan einfach 2 Funktionen mit einem switch($board) drin.)
zorg.ch
#40207 by @ 30.07.2004 17:24 - nach oben -
Ok... hättest du mir eine Funktion: Smarty::isUserBerechtigt($template_id, $user_id); ? Dann bau ich das rasch ein.
zorg.ch
#40226 by @ 30.07.2004 21:50 - nach oben -
so was ähnliches gibts schon:

bool tpl_permission($group, $owner)

wobei $group die zugriffs-berechtigung im template ist. für die comments wäre also das feld read_rights in der templates-table als $group zu übergeben.

$owner ist der besitzer des templates. also das feld owner aus der templates-table.

geprüft wird immer, ob der aktuelle user berechtigt ist. sollte reichen, oder?
zorg.ch
#40489 by @ 02.08.2004 16:51 - nach oben -
Check ich nicht, bzw. glaube es reicht nicht...
zorg.ch
#40518 by @ 02.08.2004 21:23 - nach oben -
sollte reichen. mach einfach folgendes: hol im query die felder 'read_rights' und 'owner' zum entsprechenden template und für die funktion aus:



tpl_permission($rs['read_rights'], $rs['owner'])



dann wird überprüft, ob der user lese-rechte auf das template hat.
zorg.ch
#40547 by @ 03.08.2004 10:26 - nach oben -
ok... gibts auch eine Smarty::getRecordset($id) Funktion?
zorg.ch
#40630 by @ 03.08.2004 13:34 - nach oben -
nein. die wird ganz sicher auch nie geben. wie schon mal gehabt ist recordset zurückgeben extrem wüst. ausserdem kannst du das einfach mit einem query machen.
zorg.ch
#40654 by @ 03.08.2004 15:53 - nach oben -
jo, stimmt... aber wenn fremde module sql für andere bereiche schreiben müssen ist das extrem unflexibel.
zorg.ch
#40656 by @ 03.08.2004 15:56 - nach oben -
das isch sicher nöd extrem unflexibel. du gosch jo au mit join's in anderi bereich (was au guet isch)

usserdem kann jetzt en SELECT * FROM IRGENDWAS nöd meh oder weniger flexibel gmacht werde...
Additional posts
zorg.ch
#40558 by @ 03.08.2004 10:41 - nach oben -
Dann muss ich loopen durch alle user... grummel... erstmal werden smarty comments nicht als unread markiert.
zorg.ch
#40631 by @ 03.08.2004 13:34 - nach oben -
du kannst gar nicht durch alle user loopen, weil du keine user-id übergeben kannst. wieso willst du durch user loopen?
zorg.ch
#40655 by @ 03.08.2004 15:55 - nach oben -
ähm... um unread_comments zu generieren für alle user die das Template anschauen dürfen??
zorg.ch
#40657 by @ 03.08.2004 15:57 - nach oben -
ou shit, ja tatsächlich. han i z wenig wiit studiert. ich pass dir die funktion no ah.
Additional posts