|
|
![](flycatimages/misc/snbg.gif) |
![](flycatimages/misc/tl.gif) |
|
![](flycatimages/misc/tr.gif) |
|
|
|
"добавление нового админа" (модули на администрирование))
| ![](flycatimages/misc/pcon.gif) |
#1 | ![](flycatimages/misc/postl.gif) |
|
07.03.2007, 16:39
Здравствуйте!
Возник такой вопрос.
Есть галерея 4nAlbum.
При добавлении нового админа, ему почему-то нет возможности дать доступ к соответствуюшему модулю (нет чекбокса в перечне).
это мне очень нужно....
Начал смотреть...
в файле authors.php
нашел следующее:
PHP код:
if (file_exists("modules/$row[title]/admin/index.php") AND file_exists("modules/$row[title]/admin/links.php") AND file_exists("modules/$row[title]/admin/case.php")) {
смутно понял назначение,
но добавил в папку modules/4nAlbum
папку admin c файлами внутри нулевого размера index.php, case.php, links.php
чекбокс 4nAlbum в меню Админы - Добавление нового админа появился...
посмотрел у остальных модулей как сделано и добавил
в файл admin/modules/4nAlbum/index.php в начало вот это:
PHP код:
global $prefix, $db;
$aid = substr("$aid", 0,25);
$row = $db->sql_fetchrow($db->sql_query("SELECT title, admins FROM ".$prefix."_modules WHERE title='4nAlbum'"));
$row2 = $db->sql_fetchrow($db->sql_query("SELECT name, radminsuper FROM ".$prefix."_authors WHERE aid='$aid'"));
$admins = explode(",", $row['admins']);
$auth_user = 0;
for ($i=0; $i < sizeof($admins); $i++) {
if ($row2['name'] == "$admins[$i]" AND $row['admins'] != "") {
$auth_user = 1;
}
}
а потом, все остальное что находится в файле index.php
добавил в условие
PHP код:
if ($row2['radminsuper'] == 1 || $auth_user == 1) {
вобщем ничего не работает...
добавляю админа, ставлю чекбокс на доступ к 4nAlbum захожу и ничего нету...
нет доступа, вобще нет ссылки даже на модуль...
в Базе данных nuke_modules в столбце admins в строке 4nAlbum логины админов добавляются..
вобщем поможите, чем можите....один не справлюсь...
|
|
|
|
![](flycatimages/misc/pbbg.gif) |
|
![](flycatimages/misc/gl.gif) |
|
![](flycatimages/misc/gr.gif) |
|
07.03.2007, 17:47
У меня такая же история была с модулем Files
Я проблему решил, но пришлось изрядно повозиться!
Ща гляну, что и как - тогда скажу...
итак, сразу скажу - это самый простой, но не самый безопасны метод... все сделал за 15 минут, поэтому ничего не обещаю, но у меня работает.
1) Создаем в modules/4nAlbum папку admin
2) создаем там файл index.php:
PHP код:
<?php
if (!defined('ADMIN_FILE')) {
die ("Access Denied");
}
global $prefix, $db, $admin_file;
$aid = substr($aid, 0,25);
$row = $db->sql_fetchrow($db->sql_query("SELECT title, admins FROM ".$prefix."_modules WHERE title='4nAlbum'"));
$row2 = $db->sql_fetchrow($db->sql_query("SELECT name, radminsuper FROM ".$prefix."_authors WHERE aid='$aid'"));
$admins = explode(",", $row['admins']);
$auth_user = 0;
for ($i=0; $i < sizeof($admins); $i++) {
if ($row2['name'] == "$admins[$i]" AND !empty($row['admins'])) {
$auth_user = 1;
}
}
if ($row2['radminsuper'] == 1 || $auth_user == 1) {
include ("admin/modules/4nalbum/index.php");
}
?>
3) там же создаем файл case.php:
PHP код:
<?php
if (!defined('ADMIN_FILE')) {
die ("Access Denied");
}
switch($op) {
case "4nalbum":
include("modules/4nalbum/admin/index.php");
break;
}
?>
4) там же создаем файл links.php:
PHP код:
<?php
if (!defined('ADMIN_FILE')) {
die ("Access Denied");
}
global $admin_file;
if (($radminsuper==1) OR ($auth_user==1)) {
adminmenu("".$admin_file.".php?op=4nalbum", "4nAlbum", "topicsman.gif");
}
?>
5) даем нужному админу права на доступ к 4nAlbum
6) проверяем, работает ли все это дело.
ЗЫ
У меня работает...
Последний раз редактировалось Astrix, 07.03.2007 в 17:55.
|
|
|
|
|
|
Хочешь обнять весь мир? - Купи глобус! |
|
|
|
|
|
|
![](flycatimages/misc/pbbg.gif) |
|
![](flycatimages/misc/gl.gif) |
|
![](flycatimages/misc/gr.gif) |
|
07.03.2007, 20:01
Еще небольшая поправочка (под виндой проблем не возникнет, но линух сильно ругаться будет): в пункте 3 строчку:
PHP код:
include("modules/4nalbum/admin/index.php");
замените на:
PHP код:
include("modules/4nAlbum/admin/index.php");
|
|
|
|
|
|
Хочешь обнять весь мир? - Купи глобус! |
|
|
|
|
|
|
![](flycatimages/misc/pbbg.gif) |
|
|
07.03.2007, 21:46
спасибо!
все действительно работает!
а в чем заключается "небезопасность метода"?
|
|
|
|
![](flycatimages/misc/pbbg.gif) |
|
|
07.03.2007, 22:28
на первый взгляд вроде все нормально. я постарался по возможности все дыры в коде заткнуть. но т. к. делал сразу десять дел, включая и написание этого кода, мог где-нить что-нить недосмотреть... если кто ошибки заметит - буду признателен!
|
|
|
|
|
|
Хочешь обнять весь мир? - Купи глобус! |
|
|
|
|
|
|
![](flycatimages/misc/pbbg.gif) |
|
Опции темы |
Поиск в этой теме |
|
|
Опции просмотра |
Линейный вид
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:19.
|
![](flycatimages/misc/fl.gif) |
|
![](flycatimages/misc/fr.gif) |
|
![](flycatimages/misc/vbbg.gif) |
![](flycatimages/misc/botl.gif) |
|
![](flycatimages/misc/botr.gif) |
![](flycatimages/misc/botcp.gif) |
|
![](flycatimages/misc/botcp.gif) |
|