1. Важное и срочное обновление IPB 3.4.5 - https://nulled.cc/threads/243375/

[Помощь] Проблемы с доп. группами (2.3.5)

Тема в разделе "IPB", создана пользователем kolum, 4 окт 2010.

Статус темы:
Закрыта.
Модераторы: Maybe
  1. kolum

    kolum Писатель

    Регистр.:
    31 мар 2008
    Сообщения:
    8
    Симпатии:
    0
    Привет.
    Есть небольшая проблемка с доп. группами у пользователей.
    Ну вот к примеру, есть группа_1, выбираю список пользователей с фильтром по этой группе, в результате отображаются только те пользователи, у которых эта группа назначена как основная.
    И второе. Создал форум с входом по паролю и выбрал освобожденной от ввода пароля группу_1. В результате опять же не спрашивает пароль только у тех, у кого эта группа как основная. Чувствую, что эти баги схожи и решение, возможно, одно для обоих, но вот куда копать уже даже и не знаю...
    Заранее спасибо!
     
  2. kolum

    kolum Писатель

    Регистр.:
    31 мар 2008
    Сообщения:
    8
    Симпатии:
    0
    Вторую проблему решил так:
    В файле /sources/classes/class_forums.php добавил
    Код:
    //-----------------------------------------
    		// Do we have permission to even see the password page?
    		//-----------------------------------------
    		
    		if ( $deny_access == 0 )
    		{
    			$group_exempt = 0;
    			
    			if ( isset($this->forum_by_id[$fid]['password']) AND $this->forum_by_id[$fid]['password'] AND $this->forum_by_id[$fid]['sub_can_post'] )
    			{
    				if ( isset($this->forum_by_id[$fid]['password_override']) )
    				{
    					if( in_array( $this->ipsclass->member['mgroup'], explode(",", $this->forum_by_id[$fid]['password_override']) ) )
    					{
    						$group_exempt = 1;
    						$deny_access = 0;
    					}
    					//--- Добавил для проверки доступа доп.групп 
    					$bypass_groups = explode( ",", $this->forum_by_id[$fid]['password_override'] );
    					$my_groups = array( $this->ipsclass->member['mgroup'] );
    					
    					if( $this->ipsclass->member['mgroup_others'] )
    					{
    						$my_groups = array_merge( $my_groups, explode( ",", $this->ipsclass->clean_perm_string( $this->ipsclass->member['mgroup_others'] ) ) );
    					}
    
    					foreach( $my_groups as $g_id )
    					{
    						if( in_array( $g_id, $bypass_groups ) )
    						{
    							$group_exempt = 1;
    						    $deny_access = 0;
    						}
    					}
    					//--- конец --
    					
    				}
    
     
Статус темы:
Закрыта.