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

Маски. Сочетание mgroup и org_perm_id


movies

Вопрос

Задачка :D

 

Юзер Ю1 из таблички ibf_members относится к группе Г1. Группа имеет маску М1.

M1 допускает в форумы Ф1, Ф2, Ф3

 

Юзер Ю2 из таблички ibf_members относится к группе Г2. Группа имеет маску М2.

M2 допускает в форумы Ф1, Ф2, Ф3

 

 

Хочу открыть Ф4 и пускать туда юзеров только Ю1

Хочу открыть Ф5 и пускать туда юзеров Ю1 и Ю2

 

Создаю маску М4. Разрешает доступ в Ф1, Ф2, Ф3, Ф4. Назначаю маску Ю1.

Создаю маску М5. Разрешает доступ в Ф1, Ф2, Ф3, Ф5. Назначаю маску Ю1 и Ю2.

 

Ю1 перестает видеть Ф4. Как быть? Делать М5 доступ в Ф1, Ф2, Ф3, Ф4, Ф5? Как-то нелогично здесь присутствие Ф4

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

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

  • 0
Создаю маску М4. Разрешает доступ в Ф1, Ф2, Ф3, Ф4. Назначаю маску Ю1.

Создаю маску М5. Разрешает доступ в Ф1, Ф2, Ф3, Ф5. Назначаю маску Ю1 и Ю2.

Может при назначении второй Ctrl не удерживаешь и выделение с 1-ой пропадает?

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

  • 0

Не могу понять логики движка при назначении масок. Зачем брать минимально подмножество масок? Логичнее было бы если бы маски дополняли друг друг.

 

маска М1 имеет доступ к Ф1 и Ф2; М2 имеет доступ к Ф2 и Ф3.

Если юзеру назначить M1 и M2, он будет видеть только Ф2. Хотя логично, чтобы юзер видел Ф1, Ф2, Ф3.

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

  • 0
Не могу понять логики движка при назначении масок. Зачем брать минимально подмножество масок? Логичнее было бы если бы маски дополняли друг друг.

Ага, согласен. Я уже давно себе переделал.

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

  • 0

Какую версию движка вы обсуждаете? Увечную 1.3.1?

У меня 1.3 от Игорька М., там все нормально, доступы по маскам суммируются. Ничего не правил, с самого начала так было.

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

  • 0
Ага, согласен. Я уже давно себе переделал.

Надо это править?

$result['g_perm_id'] = $result['org_perm_id'] ? $result['org_perm_id'] : $result['g_perm_id'];

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

  • 0

и это тоже. Но это не главное.

 

Главное вот:

$ibforums->perm_id = ( $this->member['org_perm_id'] ) ? $this->member['org_perm_id'] : $this->member['g_perm_id'];

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

  • 0

Спасибо за помощь! Такая замена корректна?

 

if ( $this->member['org_perm_id'] )
{
	$org_perm_id_array = explode( ",", $this->member['org_perm_id'] );
	$g_perm_id_array = explode( ",", $this->member['g_perm_id'] );
	$ibforums->perm_id_array = array_merge ($org_perm_id_array, $g_perm_id_array);
}
else
{
	$ibforums->perm_id_array = explode( ",", $this->member['g_perm_id'] );
}

 

P.S. Извиняюсь, что только сейчас отписываюсь в теме.

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

  • 0

вполне.

Я когда-то делал так:

	// Song * add additional perms 16.03.2005
function concat_perms(&$main_perms, $additional_perms = "") {

	if ( $additional_perms )
	{
		$main_perms = ( $main_perms ) ? $main_perms.",".$additional_perms
						  : $additional_perms;
	}
}

 

И соответственно functions.php:

 

		// additional permissions based on private preferences of the member
	if ( $this->member['org_perm_id'] )
	{
		$std->concat_perms($ibforums->perm_id, $this->member['org_perm_id']);
	}

 

Topics.php:

				if ( $result['org_perm_id'] )
			{
				$std->concat_perms($result['g_perm_id'], $result['org_perm_id']);

				if ( $forum_perms != "*" )
				{

ну и т.д.

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

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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

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