Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Subquery und Benutzerrechte erstellen

2 views
Skip to first unread message

Jens Krämer

unread,
Jan 28, 2013, 5:36:52 PM1/28/13
to
Hallo,
ich habe am Ende das was ich schon habe einkopiert.

Nun zu meinem Anliegen. Ich mᅵchte gerne ein kleines Rechte System fᅵr
mein PHP Script.

Dieses Script listet ALLE Postings auf die die User erstellen, diese
User kᅵnnen dann das Recht einrᅵumen, ALLE LESEN, FREUNDE LESEN,
BESTIMMTE FREUNDE NUR LESEN ODER GAR KEINER.

Das wird im Feld "privatright" vermerkt in Form von 1,2,3 oder 4
/*
privatright
Status
1 = ᅵffentlich
2 = Freunde ALLE
3 = Nur Poster selbst
4 = Limit mit Angaben (User)
*/

Der der das Script aufruft ist an dem die Rechte gebunden sind!
Er bekommt demnach nur die Postings die ᅵffentlich UND wenn ER Freund
ist auch diese sowie wenn er in den weiteren Angaben im Feld
"friendsrights" notiert wurde auch dieses Posting dann...

Doch genau bei diesem System tu ich mir schwer. da mit heute die Logik
fehlt.... Wer kann mir einen Tip eine Idee aufzeigen...!?

Vielen Dank fᅵrs lesen und ich hoffe das mein Anliegen vestᅵndlich ist.





Tabelle:
CREATE TABLE IF NOT EXISTS `postings` (
`pid` int(11) unsigned NOT NULL AUTO_INCREMENT,
`pagetext` text,
`dateline` int(11) unsigned NOT NULL,
`userid` int(11) unsigned NOT NULL,
`friendsrights` varchar(250) DEFAULT '-1',
`groupsrights` varchar(250) NOT NULL DEFAULT '-1',
`privatright` tinyint(1) unsigned NOT NULL DEFAULT '1',
PRIMARY KEY (`pid`),
KEY `userid` (`userid`)
);


Was ich schon habe:
$qres = $this->dbobject->query("SELECT
posts.*,
posts.likes AS LIKES,
posts.shares AS IS_SHARE,
posts.comments AS COMMENTS,
user.userid,
user.username,

IF(posts.privatright = 1, 1, 0) AS IS_PUBISHED,

UNIX_TIMESTAMP() - posts.dateline AS TimeSpent

FROM posts AS posts

LEFT JOIN user AS user ON (user.userid = posts.userid)

WHERE

" . iif($friendspost, "posts.userid IN ($friends_ids)", "posts.userid =
" . $this->userid . "") . "

" . iif($friendspost, "
AND IF(
posts.userid = " . $this->userid . ",
posts.userid = " . $this->userid . ",
IF(posts.privatright=1, '',
IF(posts.privatright=2, posts.userid IN ($friends_ids), '') ) ) ") . "
ORDER
BY posts.dateline DESC
LIMIT $limit

--
Gruss Jens


Thomas 'PointedEars' Lahn

unread,
Jan 28, 2013, 6:20:32 PM1/28/13
to
Jens Krämer wrote:

> Nun zu meinem Anliegen. Ich möchte gerne ein kleines Rechte System für
> mein PHP Script.
>
> Dieses Script listet ALLE Postings auf die die User erstellen, diese
> User können dann das Recht einräumen, ALLE LESEN, FREUNDE LESEN,
> BESTIMMTE FREUNDE NUR LESEN ODER GAR KEINER.
>
> Das wird im Feld "privatright" vermerkt in Form von 1,2,3 oder 4
> /*
> privatright
> Status
> 1 = Öffentlich
> 2 = Freunde ALLE
> 3 = Nur Poster selbst
> 4 = Limit mit Angaben (User)
> */
>
> Der der das Script aufruft ist an dem die Rechte gebunden sind!

Wie bitte?

> Er bekommt demnach nur die Postings die Öffentlich UND wenn ER Freund
> ist auch diese sowie wenn er in den weiteren Angaben im Feld
> "friendsrights" notiert wurde auch dieses Posting dann...
>
> Doch genau bei diesem System tu ich mir schwer. da mit heute die Logik
> fehlt.... Wer kann mir einen Tip eine Idee aufzeigen...!?

Schlaf drüber.

> Vielen Dank fürs lesen und ich hoffe das mein Anliegen veständlich ist.

Leider nein. Das nächste Mal solltest Du eine *von Dir* korrekturgelesene
Version posten. Auch was Zeichensetzung betrifft.

--
PointedEars

Twitter: @PointedEars2
Please do not Cc: me. / Bitte keine Kopien per E-Mail.

Claus Reibenstein

unread,
Jan 29, 2013, 12:52:28 PM1/29/13
to
Jens Krᅵmer schrieb:

> Nun zu meinem Anliegen. Ich mᅵchte gerne ein kleines Rechte System fᅵr
ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ

Ein was? Meinst Du ein rechtes System, also eins, was in Ordnung ist,
oder ein Rechtesystem, also eines, welche den Zugriff ᅵber Rechte steuert?

> Der der das Script aufruft ist an dem die Rechte gebunden sind!
> Er bekommt demnach nur die Postings die ᅵffentlich UND wenn ER Freund
> ist auch diese sowie wenn er in den weiteren Angaben im Feld
> "friendsrights" notiert wurde auch dieses Posting dann...

Irgendwie schreibst Du ziemlich wirres Zeug.

> Doch genau bei diesem System tu ich mir schwer. da mit heute die Logik
> fehlt

Das merkt man schon der Logik Deiner obigen Sᅵtze an.

> Vielen Dank fᅵrs lesen und ich hoffe das mein Anliegen vestᅵndlich ist.

Wohl eher nicht.

Am besten schlᅵfst Du noch mal drᅵber und formulierst dann in Ruhe und
verstᅵndlichem Deutsch Dein Anliegen neu. Es ist nicht unwahrscheinlich,
dass Du dabei von alleine auf eine fᅵr Dich passende Lᅵsung kommst.

> Was ich schon habe:
> $qres = $this->dbobject->query("SELECT
> posts.*,
> posts.likes AS LIKES,
> posts.shares AS IS_SHARE,
> posts.comments AS COMMENTS,

Du selektierst _alle_ Spalten von posts und _zusᅵtzlich_ nochmal 3
Spalten extra? Wozu soll das gut sein?

> FROM posts AS posts
ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ

Warum gibst Du der Tabelle ihren tatsᅵchlichen Namen nochmal als Alias
mit? Das ergibt keinen Sinn.

> " . iif($friendspost, "posts.userid IN ($friends_ids)", "posts.userid =
ᅵᅵᅵ

Was ist denn iif?

Gruᅵ
Claus

Ralf S.

unread,
Feb 8, 2013, 5:09:23 PM2/8/13
to
>> " . iif($friendspost, "posts.userid IN ($friends_ids)", "posts.userid =
> ¯¯¯
>
> Was ist denn iif?
>
> Gruß Claus

Das stammt aus Excel oder Access.

mfg
Ralf

--
Wegen SPAM: Für e-mail verwenden: "errr" statt "erxr" !

frank paulsen

unread,
Feb 15, 2013, 11:22:10 AM2/15/13
to
"Ralf S." <schne...@arcor.de> writes:

>>> " . iif($friendspost, "posts.userid IN ($friends_ids)", "posts.userid =
>> ŻŻŻ
>>
>> Was ist denn iif?
>>
>> Gruß Claus
>
> Das stammt aus Excel oder Access.

iif() in dBASE duerfte etwas aelter sein...

--
frobnicate foo
0 new messages