Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Запрещаем модерам править посты админов.

Модерирует : Antuan

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5

Открыть новую тему     Написать ответ в эту тему

Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Стандартно модераторы могут исправлять постинги администраторов, однако это не всегда есть гуд.
 
Посты могут править:  
1. участник  - только свой по дефолту
2. Гость не может править( установленно в последней версии) по дефолту
3. Забаненый не может править(утановленно в последней версии) по дефолту
4. Модератор  - только в своем форуме по дефолту
5. Администратор везде по дефолту
6. Модератор в своем форуме посты админа ( убираем с помощью этого хака)

Удалением постов.
1. участник  - не может по дефолту
2. Гость не может ( установленно в последней версии) по дефолту
3. Забаненый не может (утановленно в последней версии) по дефолту
4. Модератор  - только в своем форуме по дефолту
5. Администратор везде по дефолту
6. Модератор в своем форуме  даже посты админа ( убираем с помощью этого хака)

 
Предлагаю решение вопроса #1:
Открываем postings.cgi
Ищем:

Код:
 
sub processedit {
 

Опускаемся ниже, находим:

Код:
 
if ($inmembername eq "$ibtxt{'0043'}"){$cleartoedit = "no"}
 

Т.е. строчку запрещающую анрегам редактировать посты.
И ниже добавляем:

Код:
 
&getmember("$postermembername");
$postermembercodesec = $membercode;
&getmember("$inmembername");
if (($postermembercodesec eq "ad") && ($inmembmod eq "yes") && ($membercode ne "ad")) {
$cleartoedit = "no";
&error("Редактирование сообщения&Модераторы не могут изменять сообщения администраторов");
}
 

Т.е мы берём значение имени автора поста, узнаём его статус, присваиваем его переменной, потом снова вытаскиваем данные редактирующего пост человека, проверяем, является ли он модером и не является ли админом, если да, то выдаём сообщение о том, что он не может править посты админа. Остальные проверки уже есть в коде.
Вывод сообщения об ощибке можно выкинуть.
Т.е. возможность одному админу править посты второго я оставил. ;)

 
Вариант №2 (альтернатива первому варианту, то есть вариант №1 не ставим)
Редактируем postings.cgi
Вот так выгледеть должно: sub processedit {

Код:
&getmember("$inmembername");  
            &moderator;  
 
            &getforum("$inforum");  
             
            if ($allowedentry{$inforum} eq "yes") { $allowed = "yes"; }  
 
            if (($privateforum eq "yes") && ($allowed ne "yes")) {  
                &error("$ibtxt{'1406'}&$ibtxt{'1407'}");  
                }    
 
            $cleartoedit = "no";  
 
            if (($membercode eq "ad") && ($inpassword eq $password)) { $cleartoedit = "yes"; }  
            if (($inmembmod eq "yes") && ($inpassword eq $password)) { $cleartoedit = "yes"; }  
            if (($inmembername eq $postermembername) && ($inpassword eq $password)) { $cleartoedit = "yes"; }  
 
            if ($inmembername eq "$ibtxt{'0043'}"){$cleartoedit = "no"}  
####Запрет модерам посты админа править start#####    
            &getmember("$postermembername");    
            $postermembercodesec = $membercode;    
            &error("Редактирование сообщения&Модераторы не могут редактировать сообщения администратора") if (($postermembercodesec eq "ad") && ($inmembmod eq "yes"));    
            ###Запрет модерам посты админа править end
 
 
        unless ($cleartoedit eq "yes") { $cleartoedit eq "no"; }  

 
Убираем возможность удалять посты админа модератором в своем форуме.
(привожу целый кусок и красным что отличается от дефолтного):

Код:
sub deletepost {  
 
    $filetoopen = "$ikondir" . "forum$inforum/$intopic.thd";  
    open(FILE, "$filetoopen");  
    @allthreads = <FILE>;  
    close(FILE);  
     
    $posttodelete = $inpostno;  
    $posttodelete--;  
    $postcountcheck = 0;  
    $totalposts = @allthreads;  
     
 
($postername,$trash)=split(/\|/,@allthreads[$posttodelete]);  
    &getmember("$postername");  
    $postercode = $membercode;
     
&getmember("$inmembername");  
    &moderator;  
 
    $cleartoedit = "no";  
 
 
    if ($membername eq "$ibtxt{'0043'}") { &error("Posting&Внимание, Гостю запрещено править сообщения"); }  
    if (($membercode eq "ad") && ($inpassword eq $password)) { $cleartoedit = "yes"; }  
    if (($inmembmod eq "yes") && ($inpassword eq $password) && ($postercode ne "ad")) { $cleartoedit = "yes"; }  
    unless ($cleartoedit eq "yes") { $cleartoedit = "no"; }  
     
        if ($cleartoedit eq "no" && $checked eq "yes") { &error("$ibtxt{'1529'}&$ibtxt{'0504'}"); }    
        if ($cleartoedit eq "yes") {  
             
            if ($posttodelete == 0) { &error("$ibtxt{'1530'}&$ibtxt{'1531'}"); }  
             
            ### First off, lets delete the post in the thread.  
 
 
 
 
 

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 19:58 03-01-2002 | Исправлено: trew, 05:43 15-02-2005
Paha_W



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
trew
так вот я так и сделал, там же вверху коды приведены...но все равно ничего и тупники прут.

Всего записей: 440 | Зарегистр. 26-05-2004 | Отправлено: 15:10 14-02-2005
trew

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Paha_W  Вот это первый кусок . который тебе нужен:#1
 
А вот это второй кусок:#2
Больше ничего ставить не нужно, куски приведены полностью, снеси прямо от и до.

Всего записей: 716 | Зарегистр. 15-11-2003 | Отправлено: 15:18 14-02-2005 | Исправлено: trew, 15:20 14-02-2005
Paha_W



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Еще вопрос изначально кто может править посты а кто не может, по моему это так:

Цитата:
Администратор - Модератор
                      |       |
                     Устники  
 

По моему такая структура.
 
Добавлено:
После полность этой замены у меня админ не может свои посты правит и участники тоже не могу.

Всего записей: 440 | Зарегистр. 26-05-2004 | Отправлено: 15:19 14-02-2005
trew

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Paha_W Посты могут править:  
1. участник  - только свой по дефолту
2. Гость не может править( установленно в последней версии) по дефолту
3. Забаненый не может править(утановленно в последней версии) по дефолту
4. Модератор  - только в своем форуме по дефолту
5. Администратор везде по дефолту
6. Модератор в своем форуме посты админа ( убираем с помощью этого хака)
Удалением постов.
1. участник  - не можетпо дефолту
2. Гость не может ( установленно в последней версии) по дефолту
3. Забаненый не может (утановленно в последней версии) по дефолту
4. Модератор  - только в своем форуме по дефолту
5. Администратор везде по дефолту
6. Модератор в своем форуме  даже посты админа ( убираем с помощью этого хака)
 
 
 
 
Добавлено:
Проверь еще раз,  админа мы не трогаем вообще.

Всего записей: 716 | Зарегистр. 15-11-2003 | Отправлено: 15:28 14-02-2005 | Исправлено: trew, 15:36 14-02-2005
Paha_W



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
1. участник  - только свой

Так они не могут удалять посты...у меня не удаляет...

Всего записей: 440 | Зарегистр. 26-05-2004 | Отправлено: 15:31 14-02-2005
trew

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Paha_W Да, не могут по дефолту,  поправлю выше.  

Всего записей: 716 | Зарегистр. 15-11-2003 | Отправлено: 15:35 14-02-2005
Paha_W



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вот файл с полность замененым кодом:
postings.txt

Всего записей: 440 | Зарегистр. 26-05-2004 | Отправлено: 15:36 14-02-2005 | Исправлено: Paha_W, 15:41 14-02-2005
trew

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Paha_W

Цитата:
Вот файл с полность замененым кодом:  
messenger.txt  
это  не к этому хаку

Всего записей: 716 | Зарегистр. 15-11-2003 | Отправлено: 15:39 14-02-2005
Paha_W



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Админа пропустил начал с модераторов:
1.Модератор не может удалять сообщение участников.
Пишет

Цитата:
 
Определенные причины для Posting Ошибка:  
Внимание, Гостю запрещено править сообщения  
Вы хотите получить доступ к форуму - Файлы помощи?  
Возможные причины для Posting Ошибка:
 

2. Участник может ничего не может править.  
Ссылку исправил.

Всего записей: 440 | Зарегистр. 26-05-2004 | Отправлено: 15:46 14-02-2005 | Исправлено: Paha_W, 15:47 14-02-2005
trew

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Paha_W Внимательно , ты перепутал местами  куда вставлять  код, вместо  
sub processedit ты вставил  sub deletepost

Всего записей: 716 | Зарегистр. 15-11-2003 | Отправлено: 15:52 14-02-2005
Paha_W



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ну посмотрите теперь у меня теперь вот так
postings.txt
и все равно тоже самое.

Всего записей: 440 | Зарегистр. 26-05-2004 | Отправлено: 16:00 14-02-2005
trew

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Paha_W теперь ты их совместил вместе
Вот мой postings Поставь его себе и скажи результат

Всего записей: 716 | Зарегистр. 15-11-2003 | Отправлено: 16:08 14-02-2005 | Исправлено: trew, 16:10 14-02-2005
Paha_W



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
trew
Вставил твой файл, и вот результаты:
 
1.С гостем все нормально, может правиьо только свое, и не может удалять. (+)(+)
2.Модератор не может редактировать сообщения участников(-).  
3.Модератор может удалять сообщения участников. (+)
4.Модератор не может редактировать сообщения Администратора(+).  
5.Модератор не может удалять сообщения Администратора(+).  
6.Администратор не может удалять сообщения участниоков(-) и модераторов(-).
7.Администратор может редактировать сообщения участников(+) и модераторов(+)

Всего записей: 440 | Зарегистр. 26-05-2004 | Отправлено: 04:01 15-02-2005
trew

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Paha_W Так, значит все работает, кроме:  
Если администратор является и модератором этого же форума, то удалить он может свою мессагу, а вот редактировать не может.
Тогда  пробуем  так:
 1. в sub processedit {
 Находим:

Код:
($postermembername, $topictitle, $postipaddress, $showemoticons, $showsignature ,$postdate, $post, $attachment) = split(/\|/, @allthreads[$posttoget]);

Ниже вставляем:

Код:
&getmember("$postermembername");
            $postercode = $membercode;

 
Находим:

Код:
if (($inmembmod eq "yes") && ($inpassword eq $password)) { $cleartoedit = "yes"; }

Заменяем на:

Код:
if (($inmembmod eq "yes") && ($inpassword eq $password)&&($postercode ne "ad")) { $cleartoedit = "yes"; }

 
2. Находим  чуть ниже ( у кого  оно уже есть):

Код:
####Запрет модерам посты админа править start#####    
            &getmember("$postermembername");      
            $postermembercodesec = $membercode;      
            &error("Редактирование сообщения&Модераторы не могут редактировать сообщения администратора") if (($postermembercodesec eq "ad") && ($inmembmod eq "yes"));      
            ###Запрет модерам посты админа править end

Коментируем или удаляем этот кусок.
 
Пробуем  
 

Всего записей: 716 | Зарегистр. 15-11-2003 | Отправлено: 05:42 15-02-2005 | Исправлено: trew, 05:46 15-02-2005
Paha_W



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
trew
На твоем скопированном файле я поставил и вот результат:
 
твой postings.txt
1. Администратор может редактировать свои сообщения (+), удаляет их (+). (работает)
2. Администратор может править сообщение модератора(-), удаляет их (-).(даже если он модератор этого форума).(не работает)
2. Администратор может править сообщение участника(-), удаляет их (-).(даже если он модератор этого форума).(не работает)
3. Модератор  может править свои сообщение(+), удаляет их (+).(работает)
4. Модератор  может править сообщение участника(-), удаляет их (-).(не рабоатет)
5. Модератор  может править сообщение Администратора(-), удаляет их (-).(работает)
6. Модератор  может править сообщение другого модератора(-), удаляет их (-).(не работает)
7. Участник может править сообщения Администартора(-), удалять(-)(рабоает).
8. Участник может править сообщения Модератора(-), удалять(-)(рабоает).
 
мой файл еще тот который до удаления:
postings_moi.txt
1. Администратор может редактировать свои сообщения(-), удаляет их (+).(первое не работает второя работает.)
2. Администратор может править сообщение модератора(-), удаляет их (-).(не работает).
2. Администратор может править сообщение участника(-), удаляет их (-).(не работает).
3. Модератор  может править сообщение участника(-), удаляет их (-).(не рабоатет)
4. Модератор  может править сообщение другого модератора(-), удаляет их (-).(не работает)
5. Модератор  может править сообщение Администратора(-), удаляет их (-).(работает)
6. Участник свои сообщения может править(-), удалять(-)(первое не рабоает, второе работает).
7. Участник может править сообщения Администартора(-), удалять(-)(рабоает).
8. Участник может править сообщения Модератора(-), удалять(-)(рабоает).
 
Темный лес не на твоем, не на моем файле не работате просто ТЕМНЫЙ лес, я уже запутался что к чему. До вырезки как советовал, можно попробовать откат сделать, но кто проверит там же ногу сломишь, если что могу дать полность файлы которые нужны для проверки. Мой косяк наверное в том, что я хаки ставлю на форум с установленными хаками и тут просто начинаешь путаться, что и где. Может все таки с мои файлом продолжим работать. Вот файл бакапный
postings_back.txt
Мож с него начнем вроде бы это тот файл до этого хака я конечно сомневаюсь что он не рання версия но все же более чище чем все предыдущие...
С нетерпение жду ответа.
 

Всего записей: 440 | Зарегистр. 26-05-2004 | Отправлено: 08:45 15-02-2005
trew

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Paha_W Ошибки не видно, и у меня работает точно по шапке( там написанно, что делает хак).
Ставь еще раз мой файл и пробуй точно по шапке. Модератор не в своем форуме не  должен удалять и редактировать.

Цитата:
2. Администратор может править сообщение модератора(-), удаляет их (-).(даже если он модератор этого форума).(не работает)  
2. Администратор может править сообщение участника(-), удаляет их (-).(даже если он модератор этого форума).(не работает)

Это было исправленно, пробуй еще раз и сверяй по шапке. Мы этим хаком убираем только две функции, а все остальное - по дефолту.
 
 
 
Добавлено:
Если продолжается, пробуем указать явно:
1. в sub processedit
Находим

Код:
if (($membercode eq "ad") && ($inpassword eq $password)) { $cleartoedit = "yes"; }

 
и под ним вставляем:

Код:
if (($membercode eq "ad") && ($inpassword eq $password) && ($postercode eq "mo"))  { $cleartoedit = "yes";}
if (($membercode eq "ad") && ($inpassword eq $password) && ($postercode eq $postermembername))  { $cleartoedit = "yes";}
 
 
2. в sub deletepost
Находим

Код:
if (($membercode eq "ad") && ($inpassword eq $password)) { $cleartoedit = "yes"; }

 
и под ним вставляем:

Код:
if (($membercode eq "ad") && ($inpassword eq $password) && ($postercode eq "mo"))  { $cleartoedit = "yes";}
if (($membercode eq "ad") && ($inpassword eq $password) && ($postercode eq $postermembername))  { $cleartoedit = "yes";}

   

Всего записей: 716 | Зарегистр. 15-11-2003 | Отправлено: 13:48 15-02-2005
Paha_W



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Я думаю с начала надо разобраться с правами админа.
Скачал файл поставил и вот результат без вставок:

Цитата:
 
Администратор может править сообщения модератора, и гостя.
Не может править сообщения участника, и свои.
Удалить может свои сообщения.
Не может удалить сообщения модератора, и участника.
 

С твоими дополнениями это что же получиться:
вот так у меня:

Код:
 $cleartoedit = "no";
 
            if (($membercode eq "ad") && ($inpassword eq $password)) { $cleartoedit = "yes"; }
            if (($inmembmod eq "yes") && ($inpassword eq $password)) { $cleartoedit = "yes"; }
            if (($inmembername eq $postermembername) && ($inpassword eq $password)) { $cleartoedit = "yes"; }
 
            if ($inmembername eq "$ibtxt{'0043'}"){$cleartoedit = "no"}
 

а вот так получиться:

Код:
 
 $cleartoedit = "no";
 
            if (($membercode eq "ad") && ($inpassword eq $password)) { $cleartoedit = "yes"; }
            if (($membercode eq "ad") && ($inpassword eq $password) && ($postercode eq "mo"))  { $cleartoedit = "yes";}  
            if (($membercode eq "ad") && ($inpassword eq $password) && ($postercode eq $postermembername))  { $cleartoedit = "yes";}
            if (($inmembmod eq "yes") && ($inpassword eq $password)) { $cleartoedit = "yes"; }
            if (($inmembername eq $postermembername) && ($inpassword eq $password)) { $cleartoedit = "yes"; }
 
            if ($inmembername eq "$ibtxt{'0043'}"){$cleartoedit = "no"}
 

Ну и  

Код:
 
$cleartoedit = "no";
 
 
    if ($membername eq "$ibtxt{'0043'}") { &error("Posting&Внимание, Гостю запрещено править сообщения"); }
    if (($membercode eq "ad") && ($inpassword eq $password)) { $cleartoedit = "yes"; }
    if (($membercode eq "ad") && ($inpassword eq $password) && ($postercode eq "mo"))  { $cleartoedit = "yes";}  
    if (($membercode eq "ad") && ($inpassword eq $password) && ($postercode eq $postermembername))  { $cleartoedit = "yes";}
    if (($inmembmod eq "yes") && ($inpassword eq $password) && ($postercode ne "ad")) { $cleartoedit = "yes"; }
    unless ($cleartoedit eq "yes") { $cleartoedit = "no"; }
 

Вот результат:

Цитата:
 
Администратор может править сообщения модератора, участника, и гостя.
Не может править сообщения свои.
Администратор удаляет только свои сообщения, больше ничьи.
 


Всего записей: 440 | Зарегистр. 26-05-2004 | Отправлено: 17:06 15-02-2005
trew

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Paha_W  Выложи  пожалуйста еще раз свой постингс и посмотрим...
Когда прописываем явно - то работает еще лучше , чем должно, значит мы на верном пути

Всего записей: 716 | Зарегистр. 15-11-2003 | Отправлено: 19:40 15-02-2005
Paha_W



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Кинул...
postings.txt

Всего записей: 440 | Зарегистр. 26-05-2004 | Отправлено: 03:01 16-02-2005
Paha_W



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
trew
Файл который ты мне прислал результаты:
 
Посты могут править:
1. участник  - только свой по дефолту --------(Работает)
2. Гость не может править( установленно в последней версии) по дефолту --------(Работает)
3. Забаненый не может править(утановленно в последней версии) по дефолту --------(Работает)
#4. Модератор  - только в своем форуме по дефолту --------(Только свои)
#5. Администратор везде по дефолту --------(Только свои)
6. Модератор в своем форуме посты админа ( убираем с помощью этого хака) --------(Работает не может править)
Удалением постов.
1. участник  - не может по дефолту --------(Работает)
2. Гость не может ( установленно в последней версии) по дефолту --------(Работает)
3. Забаненый не может (утановленно в последней версии) по дефолту --------(Работает)
#4. Модератор  - только в своем форуме по дефолту --------(Только свои)
#5. Администратор везде по дефолту --------(Только свои)
6. Модератор в своем форуме  даже посты админа ( убираем с помощью этого хака) --------(Работает не может удалять)
То что помеченно красным не работает.

Всего записей: 440 | Зарегистр. 26-05-2004 | Отправлено: 17:15 16-02-2005
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Запрещаем модерам править посты админов.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru