Регистрация
Вход через соцсети
Восстановление пароля

Права на разделы

Новый топик
05.04.2010, 10:57
Ответить | Цитировать
chuc

Зарегистрирован:
2009-10-08
Сообщений: 43

Допустим у меня есть раздел в котором есть например 10 разделов, для каждой группы пользователей доступны определенные разделы, я их вывожу через s_browse_sub(), как мне сделать так чтобы когда пользователь заходил ему показывались только те разделы которые ему доступны???

я не настаиваю именно на использовании s_browse_sub(), есть другие способы реализации предлагайте, буду ток рад) заранее спс)

makushkin
05.04.2010, 16:18
Ответить | Цитировать
MipH
Спирин Дмитрий
MipH

Зарегистрирован:
2004-12-22
Сообщений: 252

Либо использовать напрямую знание "Permission
Таблица «Экземпляр прав». В таблице хранятся экземпляры прав для
конкретных пользователей. Связанные таблицы: PermissionGroup, User."

Либо Руководство разработчика, раздел Permission.

bbzone@gmail.com | bbz.ru | miph.info | miph.ru
Вы можете обратиться ко мне, если необходима разработка функционала на NetCat
06.04.2010, 00:32
Ответить | Цитировать
malich
Андрей Малков

Зарегистрирован:
2005-08-09
Сообщений: 522

добавьте в шаблон меню условие. К примеру если доступ к разделам жестко забит

$browse[unactive] = "".($data[$i][Subdivision_ID]==195 && $current_user[PermissionGroup_ID]==2 ?"выводим что то":"выводим что то другое")."";

$current_user[PermissionGroup_ID] - id группы к которой принадлежит текущий авторизованный пользователь
$data[$i][Subdivision_ID] - id раздела

либо как писал MipH сравнивайте группу пользователя с ее Permission
06.04.2010, 07:03
Ответить | Цитировать
chuc

Зарегистрирован:
2009-10-08
Сообщений: 43

malich писал(а):
добавьте в шаблон меню условие. К примеру если доступ к разделам жестко забит

$browse[unactive] = "".($data[$i][Subdivision_ID]==195 && $current_user[PermissionGroup_ID]==2 ?"выводим что то":"выводим что то другое")."";

$current_user[PermissionGroup_ID] - id группы к которой принадлежит текущий авторизованный пользователь
$data[$i][Subdivision_ID] - id раздела

либо как писал MipH сравнивайте группу пользователя с ее Permission


под PermissionGroup_ID подразумевается ведь одна группа а не несколько, если я канешь но правильно понимаю, если у меня пользователь состоит в 3 группах и в поле PermissionGroup_ID эта группа не стоит? то че делать?

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


makushkin
06.04.2010, 07:56
Ответить | Цитировать
malich
Андрей Малков

Зарегистрирован:
2005-08-09
Сообщений: 522

$current_user[PermissionGroup_ID] это группа пользователя (Администраторы, внешние пользователи, ....), она берется из БД, табличка User и доступна для всех авторизованных пользователей.

Права этой группы хранятся в табличке Permission

соответственно вам зная группу пользователя($current_user[PermissionGroup_ID]) и id раздела ($data[$i][Subdivision_ID]) нужно делать запрос к БД и в зависимости от прав пользователя показывать ему информацию.
07.04.2010, 12:51
Ответить | Цитировать
chuc

Зарегистрирован:
2009-10-08
Сообщений: 43

Кому интересно получилось вот так

Код:
for($y=0;$y<count($current_user[Permission_Group]);$y++){
$group_id_user.= $current_user[Permission_Group][$y].($y==(count($current_user[Permission_Group])-1) ? "" : ", ");
}

$browse_lk[prefix] = "<div style='padding-top:10px;font-size:11px;'>";
$browse_lk[suffix] = "</div>";

$browse_lk[active] = $browse_lk[unactive] = ""; global $group_id_user,$AUTH_USER_GROUP;
$right = $db->get_var("SELECT count(Permission_ID) FROM Permission WHERE `PermissionGroup_ID` IN (".$group_id_user.") AND `Catalogue_ID`= ".$data[$i][Subdivision_ID]."");
$result.=($right>0 || $AUTH_USER_GROUP==1 ? "<div>%NAME</div>" : "")."";

$browse_lk[unactive] = ""; global $group_id_user,$AUTH_USER_GROUP;
$right = $db->get_var("SELECT count(Permission_ID) FROM Permission WHERE `PermissionGroup_ID` IN (".$group_id_user.") AND `Catalogue_ID`= ".$data[$i][Subdivision_ID]."");
$result.=($right>0 || $AUTH_USER_GROUP==1 ? "<div><a href=%URL>%NAME</a></div>" : "")."";


makushkin
198 196 2010-04-07 12:51:08 9910
Описание проекта