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

Материал из Umicms
Версия от 09:32, 13 августа 2018; Kublan (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Актуально для версии 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. Перед вызовом советуем сделать дамп базы данных.