Страница 1 из 1

Аутентификация пользовтелей

Добавлено: 15.04.2009 2:32
PoTaP0ff
Подскажите пожалуйста, как и где происходит проверка вошедших юзверей на то могут ли они писать в данном форуме или нет, я так понял для этого служит файл auth.php, но чет понять, что и как пока не могу.
Заранее спасибо.

Re: Аутентификация пользовтелей

Добавлено: 15.04.2009 8:03
Поручик
В auth.php только определения функций, проверка прав доступа происходит в viewforum.php. Смотрите Блок между строками

Код: Выделить всё

//
// Start auth check
..................
..................
// End of auth check
//
в posting.php фрагмент между

Код: Выделить всё

// What auth type do we need to check?
и

Код: Выделить всё

// Set toggles for various options

Re: Аутентификация пользовтелей

Добавлено: 16.04.2009 16:45
PoTaP0ff
Ну вот смотрите, у меня между этими блоками в viewforum.php следущее.

Код: Выделить всё

//
// Start auth check
//
$is_auth = array();
$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_row);

if ( !$is_auth['auth_read'] || !$is_auth['auth_view'] )
{
	if ( !$userdata['session_logged_in'] )
	{
		$redirect = POST_FORUM_URL . "=$forum_id" . ( ( isset($start) ) ? "&start=$start" : '' );
		redirect(append_sid("login.$phpEx?redirect=viewforum.$phpEx&$redirect", true));
	}
	//
	// The user is not authed to read this forum ...
	//
	$message = ( !$is_auth['auth_view'] ) ? $lang['Forum_not_exist'] : sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']);

	message_die(GENERAL_MESSAGE, $message);
}
//
// End of auth check
//
Я так понял, что создается массив $is_auth, в него мы записываем какие права имеет пользователь в данном разделе, а происходит это посредством функции auth(AUTH_ALL, $forum_id, $userdata, $forum_row); которая в свою очередь берется из файла auth.php(насколько я это понял). Дальше мы проверяем if ( !$is_auth['auth_read'] || !$is_auth['auth_view'] ), если у нас право смотреть форум... впринципе все...
Вообщем я хотел следущее: Уже добавли в админке в раздел Доступ к форумам еще одну колонку, допустим специалист, и выпадающее меню, как и в остальной части... Дольше описал это поле в файле auth.php в функции auth()

Код: Выделить всё

	switch( $type )
	{
		...
		case AUTH_SP:
			$a_sql = 'a.auth_sp';
			$auth_fields = array('auth_sp');
			break;
		...
		default:
			break;
	}
Соответственно и в БД все есть, теперь я могу выбирать в админке как мне надо эту опцию, все работает.
Дальше мне надо наделить юзверей, входящих в группу, в которой включена данная опция (стоит выбор - приватный) определенными польномочиями, вот блин непойму где и примерно как это сделать...
Объяснил, как мог - сильно не пинайте, жду ответа.
Заранее спасибо.

Re: Аутентификация пользовтелей

Добавлено: 16.04.2009 17:22
Поручик
Где-то была статья на тему добавления новых прав доступа, по-моему на английском языке. Попробуй поищи по словам "group permission system phpBB 2".

Re: Аутентификация пользовтелей

Добавлено: 17.04.2009 10:57
PoTaP0ff
(((( Чет ненашел, блин, а без этой статьи никто не поможет?

Вообщем с viewforum.php разобрался, а с posting.php все сложнее, никак не пойму че и как там, помогите пожалуйста, оч. надо. Мне нужно понять, где происходит проврка на то, может ли пользователь писать в данном топике(т.е. проверяет юзверей, входящих в группу, которая относится к данному форуму, на предмет пареметров описанных выше(т.е. мне надо мой доп. параметр проверить и еще кое что проверить, взяв из нужной мне таблице))

Re: Аутентификация пользовтелей

Добавлено: 22.04.2009 2:23
PoTaP0ff
Ну помогите ктонибудь... разбирался с auth.php, кое че понял, но вот доконца - нет, как же всетаки добавить и использоват правильно новое правило доступа?