Forums / National / Russian / Сборка «Фриланс-биржа» / Плагин для конкретной группы

dJemon
#1 2016-09-23 08:03

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

Например: только для фрилансеров и админов, а для прочих групп не показывалось(не работал).

Добавлено 2 недели спустя:

Кому будет нужно, в [pluginName].install.php должен быть код определяющий права кому можно, а кому нет.

Что-то вроде такого, для Работодателей(гр.№7) запрещено(5) размещать в Портфолио(folio):

$db->update($db_auth, array('auth_rights' => 5), "auth_code='folio' AND auth_groupid=7");

 


Dit bericht is bewerkt door dJemon (2016-10-13 14:34, 7 jaren ago)
Macik
#2 2016-10-13 23:26

Распишу чуть подробнее и в более универсальной форме (для плагинов и модулей есть различия — смотри комментарии): 

// имя расширения
$ext_name = 'extension';

// маска установленных (разрешенных) прав
$rights_mask = 'RW';

// маска запрещенных к редактированию в админке прав
$lock_mask = 'A';  

// ID групп пользователей через запятую
$grp_id = '7';

// формируем условие для поиска нужной строки в базе
$condition = "auth_groupid IN ($grp_id)";

// Далее выбираем только один нужный вариант в зависимости от модуля/плагина!
$condition .= " AND auth_code='plug' AND auth_option='$ext_name'" ; // в случае плагина
$condition .= " AND auth_code='$ext_name'" ; // в случае модуля

$db->update(
    cot::$db->auth, 
    array(
        'auth_rights' => cot_auth_getvalue($rights_mask),
        'auth_lock' => cot_auth_getvalue($lock_mask),
    ), 
    $condition
);

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F