Artikel im Back-End-Bereich nur für Authoren sichtbar

Gesperrt
Jimbo
Beiträge: 1
Registriert: Mo 21. Mär 2005, 13:57
Kontaktdaten:

Artikel im Back-End-Bereich nur für Authoren sichtbar

Beitrag von Jimbo » Mo 21. Mär 2005, 14:09

Hi.
Ich beschäftige mich seit 3 Tagen mit Contenido und finde es ist ein schickes System. Vor allem auch für mich, der nur rudimentäre PHP-Kenntnisse hat.
Na jedenfalls wollte ich ein System aufsetzen, bei dem es nur bestimmten Benutzern erlaubt ist bestimmt Bereiche einzusehen. Dies aber nicht nur im Front-End-Bereich sondern auch im Back-End. Leider habe ich keine Option gefunden, bei der ich dies einstellen konnte, und so habe ich mir selbst eine kleine Abfrage geschrieben.
Sie macht Artikel nur für den jeweiligen Autor sichtbar sowie für einen weiteren Benutzer (bei mir der System-Admin). Da ich wie gesagt nicht so bewandert bei PHP bin, bitte ich euch mich auf Fehler hinzuweisen.
Die Änderung muss in

include.con_art_overview.php

vorgenommen werden. Zuerst muss die SQL-Abfrage um die Zeile

Code: Alles auswählen

a.author AS author
erweitert werden. Dann muss der folgende Code zu Beginn der Schleife

Code: Alles auswählen

while ( $db->next_record() ) {
eingefügt werden:

Code: Alles auswählen

/* code from R.S.
BEGIN
check if the current user created the article
*/
            $FullAccessUser_Name = "sysadmin";

            // name of the current user
            $CurrentUser_Name = "";
            // id of the current user
            $CurrentUser_ID = $auth->auth["uid"];
            // temp. db
            $db_auth = new DB_Contenido;
            // find out the name of the current user
            $query = "SELECT *".
                     "FROM ".$cfg["tab"]["phplib_auth_user_md5"]." AS U";
            $db_auth->query($query);

            // go through all known users
            while ($db_auth->next_record()) {
                // id of current DB entry
                $DBUser_ID = $db_auth->f("user_id");
                if($CurrentUser_ID == $DBUser_ID)
                {
                	$CurrentUser_Name = $db_auth->f("username");
                        continue;
                }
            }
            // to make this request you have to add "a.author AS author" to the query string
            $Author_Name   = $db->f("author");

            // check if the current use is the other of the article
            if (($CurrentUser_Name == $Author_Name))
            {
//            	echo "-access granted-";
            }
            else
            {
            	// check if it's the sysadmin
            	if($CurrentUser_Name == $FullAccessUser_Name)
            	{
//            	        echo "-you are never restricted -";
            	}
            	// do not display page
            	else
            	{
//            	        echo "-access denied-";
                continue;
             }
            }
/* code from R.S
END
*/
Nun dürften Artikel nur noch für die jeweiligen Autoren sichtbar sein.
Wäre cool, wenn es in einer der nächsten Version dazu eine GUI in Contenido existieren würde bzw. mir jemand mitteilt, dass es so etwas schon gibt.

MfG, Jimbo

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Do 24. Mär 2005, 14:34

nicht unintressante variante

ich hab das mal da ergänzt -> http://contenido.org/forum/viewtopic.ph ... highlight=
*** make your own tools (wishlist :: thx)

Gesperrt