====== Superuser [BE] ======
**Backend:** Dis ist eine sehr einfache Lösung - ein schneller Hack, damit Benutzer mit Admin-Rechten arbeiten, jedoch keine Admin-Bereiche ohne einen speziellen Super-Usercheck editieren können.
Docu: -- \\
Forum: [[http://forum.phpwcms.org/viewtopic.php?p=117699|Quick and dirty Superuser functionality]]
**Autor:** O.Georgi http://phpwcms.de \\
**CMS version:** >= 1.4 \\
**Version:** V1.0 \\
**Tag** mysite.com/phpwcms.php?superuser=muschi \\
**Dateiname:** navi_text.inc.php
**Verzeichnis:** include/inc_lib/
----
\\
Unzip die anhängende Datei {{:english:other-enhancements:hacks:navi_text.inc.php.zip|navi_text.inc.php.zip}}
und tausche navi_text.inc.php in include/inc_lib/ //(mache vorher ein Backup der Originaldatei)//.
In der Datei findest du ein neues "verstecktes" Wort - ersetze
$phpwcms['superuser_checkword'] = 'muschi';
mit irgendeinem Wort was dir gefällt und vergesse es nicht.
Das Admin-Menü wird nicht angezeigt, solange die Superuser URI nicht eingegeben wird: \\
**mysite.com/phpwcms.php?superuser=muschi**
Schaue dir die Bilder an:
{{:english:other-enhancements:hacks:superuser01_be.gif|}}
\\
{{:english:other-enhancements:hacks:superuser02_be.gif|}}
\\
{{:english:other-enhancements:hacks:superuser03_be.gif|}}
Nun ist der Superuser in dieser Session registriert und das Admin-Menü bleibt sichtbar, solange die Session gültig ist.
\\
~~UP~~
===== Variante 01 =====
Nur für diese eingetragenen Admin-Benutzer ist das Admin-Menü verfügbar. \\
Im Beispiel für die Benutzer mit den Benutzernamen "hans" und "erwin".
Die Idee basiert darauf, das alle Benutzer Adminrechte erhalten jedoch nicht das Admin-Menü sehen.
**Datei:** include/inc_lib/navi_text.inc.php
Ersetze
$wcsnav["admin"] = ''.$BL['be_nav_admin'].'';
durch
// +KH: 14.04.10 Only for this registered admin user the admin menu is available
// -----------------------------------------------------
if ($_SESSION['wcs_user'] === 'hans' OR
$_SESSION['wcs_user'] === 'erwin')
$wcsnav["admin"] = ''.$BL['be_nav_admin'].'';
// -----------------------------------------------------
\\
~~UP~~
===== Variante 02 =====
Getestet in V 1.4.6 r402
Für diese eingetragenen Admin-Benutzer ist das Admin-Menü **nicht** verfügbar. \\
Im Beispiel für die Benutzer mit den Benutzernamen "oblong" und "don-blech".
Die Idee basiert darauf, das alle Benutzer Adminrechte erhalten jedoch nicht das Admin-Menü sehen.
Darüberhinaus wird noch die CP-Auswahl für die eingetragenen User reduziert.
Dazu wird ein Duplikat der Datei "include/inc_lib/article.contenttype.inc.php" erzeugt und die entsprechenden CPs gesperrt oder freigegeben. \\
-> Neuer Dateiname: "include/inc_lib/article.contenttype_small.inc.php"
\\
==== Menü sperren ====
**Datei:** include/inc_lib/navi_text.inc.php
Ersetze
$wcsnav["admin"] = ''.$BL['be_nav_admin'].'';
durch
// +KH: 14.04.10 Only for this registered admin user the admin menu is available
// -----------------------------------------------------
if ($_SESSION['wcs_user'] !== 'oblong' AND
$_SESSION['wcs_user'] !== 'don-blech')
$wcsnav["admin"] = ''.$BL['be_nav_admin'].'';
// -----------------------------------------------------
\\
==== CPs filtern ====
**Datei:** phpwcms.php
Ersetze //(etwa in Zeile 87)//
include(PHPWCMS_ROOT.'/include/inc_lib/article.contenttype.inc.php'); //loading array with actual content types
durch
// +KH: 14.04.10 This user has a special contentpart list
// ---------------------------------------------------------
if ($_SESSION['wcs_user'] !== 'oblong' AND $_SESSION['wcs_user'] !== 'don-blech')
include(PHPWCMS_ROOT.'/include/inc_lib/article.contenttype.inc.php'); //loading array with actual content types
else
include(PHPWCMS_ROOT.'/include/inc_lib/article.contenttype_small.inc.php'); //loading array with small content type list
// ---------------------------------------------------------
\\
**Die Datei** "include/inc_lib/article.contenttype_small.inc.php" wird neu erzeugt und die nicht verwendbaren CPs auskommentiert.
$BL['be_ctype_plaintext'] ,
//kh 6 => $BL['be_ctype_html'],
14 => $BL['be_ctype_wysywig'],
//kh 11 => $BL['be_ctype_code'],
1 => $BL['be_ctype_textimage'],
29 => $BL['be_ctype_imagesdiv'],
//kh 31 => $BL['be_ctype_imagesspecial'],
//kh 32 => $BL['be_ctype_tabs'],
2 => $BL['be_ctype_images'],
//kh 4 => $BL['be_ctype_bulletlist'],
//kh 100 => $BL['be_ctype_ullist'],
//kh 3 => $BL['be_ctype_link'],
5 => $BL['be_ctype_linklist'],
8 => $BL['be_ctype_linkarticle'],
//kh 33 => $BL['be_news'],
15 => $BL['be_ctype_articlemenu'],
//kh 9 => $BL['be_ctype_multimedia'],
7 => $BL['be_ctype_filelist'],
//kh 16 => $BL['be_ctype_ecard'],
//17 => $BL['be_ctype_blog'],
//kh 23 => $BL['be_ctype_simpleform'],
//kh 10 => $BL['be_ctype_emailform'].' [old]',
//kh 12 => $BL['be_ctype_newsletter'],
//kh 13 => $BL['be_ctype_search'],
//kh 18 => $BL['be_ctype_guestbook'],
//kh 19 => $BL['be_ctype_sitemap'],
//20 => $BL['be_ctype_bid'],
//kh 21 => $BL['be_ctype_pages'],
//kh 22 => $BL['be_ctype_rssfeed'],
//kh 50 => $BL['be_ctype_reference'],
//kh 51 => $BL['be_ctype_map'],
//kh 52 => $BL['be_ctype_phpvar'],
//53 => $BL['be_ctype_forum'],
//kh 24 => $BL['be_ctype_alias'],
//kh 89 => $BL['be_ctype_poll'], // jens poll
//kh 26 => $BL['be_ctype_recipe'],
//kh 27 => $BL['be_ctype_faq'],
//kh 28 => $BL['be_ctype_felogin'],
//kh 25 => $BL['be_ctype_flashplayer']
);
// set module content parts = 30
if(count($phpwcms['modules'])) {
foreach($phpwcms['modules'] as $value) {
if($value['cntp']) {
$wcs_content_type[30] = $BL['be_ctype_module'];
break;
}
}
}
?>
Die Auswahlreihenfolge der CPs im BE ist abhängig von der Reihenfolge der Einträge in dieser Datei. //(Siehe auch: [[deutsch/technik/aufruf-interner-funktionen/content_part_typen]])//.
\\