Апрель 5

webasyst позволяем определенному пользователю доступ только к определенной категорие

выполняем в БД подразумеваеться что всекто не состоят в первой группе

будут видеть только ту категорию в которой прописан его ИД

ALTER TABLE `SC_categories` ADD `cat_acces` TEXT NOT NULL

В файле /published/SC/html/scripts/templates/backend/category.html после блока

<tr>
<td>{lbl_catset_slug}</td>
<td><input name=»slug» value=»{$CategoryInfo.slug|escape:’html’}» type=»text» style=»width:350px;» /></td>
</tr>

добавляем окно назначени прав категориям поле показуем только 1 группе

{if in_array(1, $grupp_id)}
<tr>

<td>через запятую права доступа</td>
<td> {foreach from=$users_id item=_users_id}{$_users_id}, {/foreach} <input name=»cat_acces» value=»{$CategoryInfo.cat_acces|escape:’html’}» type=»text» style=»width:350px;» /></td>
</tr>
{/if}

в файл

/published/SC/html/scripts/classes/class.category.php

после

var $slug;

добавляем
var $cat_acces;

 

в файл

/published/SC/html/scripts/index.php

после

if(is_object($currencyEntry)){
$smarty->assign(‘current_currency_js’, $currencyEntry->getJSCurrencyInstance());
}

добавляем

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

$result=mysql_query(‘SELECT * FROM `WBS_USER`’);
$users_id=array();
while($row=mysql_fetch_array($result))
{
$users_id[]=$row[‘U_ID’];

}

$smarty->assign(‘users_id’, $users_id);
$smarty->assign(‘user_id’, $_SESSION[‘__WBS_SC_DATA’][«U_ID»]);
$smarty->assign(‘grupp_id’, $_SESSION[‘__WBS_SC_DATA’][UG_IDs]);

в файле

/published/SC/html/scripts/core_finctions/category_functions.php

меняем начало функции _recursiveGetCategoryCList

function _recursiveGetCategoryCList( $parent, $level, $expandedCategoryID_Array, $_indexType = ‘NUM’, $_countEnabledProducts = false )
{

 

$adm=(in_array (1, $_SESSION[‘__WBS_SC_DATA’][UG_IDs])?1:0);

$name = LanguagesManager::sql_prepareField(‘name’, true);//, `id_quickbooks`
$sql = <<<SQL
SELECT `categoryID`, {$name}, `products_count`, `cat_acces`,`products_count_admin`, `parent`, `id_1c`
FROM `?#CATEGORIES_TABLE`
WHERE `parent`=? AND( `cat_acces` like(‘%{$_SESSION[‘__WBS_SC_DATA’][«U_ID»]}%’) OR {$adm}=1 OR {$level}>0 )
ORDER BY `sort_order`, `name`
SQL;