Массовое изменение прав у элементов раздела каталога — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
Строка 10: Строка 10:
  
 
$groupId = 4; // id группы пользователей или пользователя
 
$groupId = 4; // id группы пользователей или пользователя
 +
        $categoryId = 150; // id раздела каталога
  
 
/**
 
/**
Строка 26: Строка 27:
  
 
$hierarchy = umiHierarchy::getInstance();
 
$hierarchy = umiHierarchy::getInstance();
$childrenList = $hierarchy->getChildrenTree($groupId);
+
$childrenList = $hierarchy->getChildrenTree($categoryId);
 
 
 
$permissions = permissionsCollection::getInstance();
 
$permissions = permissionsCollection::getInstance();

Версия 09:31, 13 августа 2018

Актуально для версии 18.

Если Вам необходимо массово изменить права у объектов каталога определенного раздела каталога, то для этого вам необходимо в корне сайта создать файл change_permissions.php и добавить в него следующий код:

<?php

	require "standalone.php";

	$groupId = 4; // id группы пользователей или пользователя
        $categoryId = 150; // id раздела каталога 

	/**
	 * Уровень выставляемых прав от "0" до "31":
	 * ---------------------------------------------------------------------------
	 * | значение | чтение | редактирование | создание | удаление |  перемещение |
	 * |    0     |   -    |       -        |    -     |    -     |       -      |
	 * |    1     |   +    |       -        |    -     |    -     |       -      |
	 * |    3     |   +    |       +        |    -     |    -     |       -      |
	 * |    7     |   +    |       +        |    +     |    -     |       -      |
	 * |    15    |   +    |       +        |    +     |    +     |       -      |
	 * |    31    |   +    |       +        |    +     |    +     |       +      |
	 * ---------------------------------------------------------------------------
	 */
	$permissionsLevel = 1;

	$hierarchy = umiHierarchy::getInstance();	
	$childrenList = $hierarchy->getChildrenTree($categoryId);
	
	$permissions = permissionsCollection::getInstance();
	
	foreach ($childrenList as $elementId => $value) {
		$result = $permissions->setElementPermissions($groupId, $elementId, $permissionsLevel);
		
		if ($result) {
			echo "Изменены права видимости для элемента $elementId";
			echo "<br/>";
		} else {
			echo "Произошла ошибка на элементе $elementId";
			echo "<br/>";
		}
	}

Затем вызвать скрипт в адресной строке имя_сайта.ru/change_permissions.php. Перед вызовом советуем сделать дамп базы данных.