Перейти к контенту
  • 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 != "*" )
				{

ну и т.д.

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

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

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

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

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

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

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

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

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

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

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

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