Перейти к контенту
  • 0

Проблема с правами модераторов


Allure

Вопрос

Сразу - поиском ничего подходящего не нашлось, посему спрашиваю отдельно.

 

Ситуация следующая: необходимо дать всем модераторам разделов права на скрытие тем и сообщений в других (помимо своих) разделах. Создала для этого группу, приписала ее модератором с правом на скрытием к нужным разделам, затем добавила эту группу вторичной нужным людям. Результат: они даже в своих разделах теперь могут только одно - скрывать. А надо, чтобы люди в _своих_ разделах могли то же, что и раньше, а в других - скрывать.

В чем подвох?

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0
при добавлении второстепенной группы возможности перезаписываются поверх? (ищи где проверяется второстепенная группа в коде, тупые индусы все могут)
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Не совсем. Я пробовала менять группу на первичную - один фиг остается _меньшее_ количество прав.

class_session.php, но выглядит все логично:

 

                    if ( $r['member_id'] == $this->member['id'] )
                   {
                       $this->member['_moderator'][ $r['forum_id'] ] = $r;
                       $this->member['is_mod'] = 1;
                   }
                   else if( $r['group_id'] == $this->member['mgroup'] )
                   {
                       // Individual mods override group mod settings
                       // If array is set, don't override it

                       if( !is_array($this->member['_moderator'][ $r['forum_id'] ]) OR !count($this->member['_moderator'][ $r['forum_id'] ]) )
                       {
                           $this->member['_moderator'][ $r['forum_id'] ] = $r;
                       }

                       $this->member['is_mod'] = 1;
                   }
                   else if( count($other_mgroups) AND in_array( $r['group_id'], $other_mgroups ) )
                   {
                       // Individual mods override group mod settings
                       // If array is set, don't override it

                       if( !is_array($this->member['_moderator'][ $r['forum_id'] ]) OR !count($this->member['_moderator'][ $r['forum_id'] ]) )
                       {
                           $this->member['_moderator'][ $r['forum_id'] ] = $r;
                       }

                       $this->member['is_mod'] = 1;
                   }

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Значит, рассказываю. :)

 

Затык в порядке модераторов. Если к разделу модератором _сначала_ была приписана группа, а после - юзер, чья группа - та самая, ведут в разделе права группы. А если сначала к разделу был приписан именно юзер, а уж затем его группа - все пучком. НО! Это ж трындец, товарищи! Выходит, после группы вообще бесполезно модераторов-юзеров из этой группы добавлять. Как исправить?

 

То есть, проблема, по ходу, в том, что права из кеша считываются по порядку до первого совпадения. Первая - группа = получаешь права группы (только скрытие в моем случае), первый - юзер = пофиг, какая у него там группа.

Изменено пользователем Allure
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Значит, рассказываю. :)

 

Затык в порядке модераторов. Если к разделу модератором _сначала_ была приписана группа, а после - юзер, чья группа - та самая, ведут в разделе права группы. А если сначала к разделу был приписан именно юзер, а уж затем его группа - все пучком. НО! Это ж трындец, товарищи! Выходит, после группы вообще бесполезно модераторов-юзеров из этой группы добавлять. Как исправить?

 

То есть, проблема, по ходу, в том, что права из кеша считываются по порядку до первого совпадения. Первая - группа = получаешь права группы (только скрытие в моем случае), первый - юзер = пофиг, какая у него там группа.

 

 

А смысл добавлять пользователя, чья группа и так модерирует этот раздел?

  • Лайк 1
Ссылка на комментарий
Поделиться на других сайтах

  • 0

FLESH-HOME, вы либо невнимателны, либо не читали начало темы:

Ситуация следующая: необходимо дать всем модераторам разделов права на скрытие тем и сообщений в других (помимо своих) разделах. Создала для этого группу, приписала ее модератором с правом на скрытием к нужным разделам, затем добавила эту группу вторичной нужным людям.

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

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

 

 

PS: Плюсик нажала случайно.

Изменено пользователем Allure
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Ну и в итоге. :)

 

Нашелся кусок в topics.php, заново раздающий права:

		if ( ($this->ipsclass->member['id']) and ($this->ipsclass->member['g_is_supmod'] != 1) )
	{
		$other_mgroups = array();

		if( $this->ipsclass->member['mgroup_others'] )
		{
			$other_mgroups = explode( ",", $this->ipsclass->clean_perm_string( $this->ipsclass->member['mgroup_others'] ) );
		}

		$other_mgroups[] = $this->ipsclass->member['mgroup'];

		$mgroups = implode( ",", $other_mgroups );

		$this->ipsclass->DB->cache_add_query('topics_check_for_mod',  array( 'fid' => $this->forum['id'], 'mid' => $this->ipsclass->member['id'], 'gid' => $mgroups ) );
		$this->ipsclass->DB->simple_exec();

		$this->moderator = $this->ipsclass->DB->fetch_row();
	}

Зачем он снова это делает?... В общем, заменой этого куска на:

        $this->moderator=$this->ipsclass->member['_moderator'][$this->forum['id']];

проблема и была решена. :) Спасибо, Arhar. :)

Изменено пользователем Arhar
--debug
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.