<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.umisoft.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%97%D0%B0%D0%BF%D1%80%D0%B5%D1%82_%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%BE%D0%B2_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B5%D0%B9</id>
	<title>Запрет редактирования заказов определенной группе пользователей - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.umisoft.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%97%D0%B0%D0%BF%D1%80%D0%B5%D1%82_%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%BE%D0%B2_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B5%D0%B9"/>
	<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%97%D0%B0%D0%BF%D1%80%D0%B5%D1%82_%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%BE%D0%B2_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B5%D0%B9&amp;action=history"/>
	<updated>2026-05-12T09:35:22Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%97%D0%B0%D0%BF%D1%80%D0%B5%D1%82_%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%BE%D0%B2_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B5%D0%B9&amp;diff=7823&amp;oldid=prev</id>
		<title>Velross: Новая страница: «Актуально для 2.9.6.  ---- &#039;&#039;&#039;Задача:&#039;&#039;&#039; Требуется определенной группе пользователей дать права т…»</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%97%D0%B0%D0%BF%D1%80%D0%B5%D1%82_%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%BE%D0%B2_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B5%D0%B9&amp;diff=7823&amp;oldid=prev"/>
		<updated>2014-05-28T11:24:09Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «Актуально для 2.9.6.  ---- &amp;#039;&amp;#039;&amp;#039;Задача:&amp;#039;&amp;#039;&amp;#039; Требуется определенной группе пользователей дать права т…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Актуально для 2.9.6.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Задача:&amp;#039;&amp;#039;&amp;#039; Требуется определенной группе пользователей дать права только на просмотр заказов, но запретить их редактирование или удаление.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Решение:&amp;#039;&amp;#039;&amp;#039; Так как заказы являются объектами, то с помощью системы прав пользователей запретить их редактирования нельзя, но мы можем написать кастомный макрос, который будет работать на события изменения объектов и проверять группу пользователя. Если пользователь будет в группе с правами только на чтение заказов, то при попытке их редактирования мы будем показывать ошибку.&lt;br /&gt;
  В файле __custom_adm.php пишем:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function editOrderDenied ($event) {&lt;br /&gt;
	$mode = $event-&amp;gt;getMode();&lt;br /&gt;
	if ($mode == &amp;#039;before&amp;#039;){&lt;br /&gt;
		$subject = $event-&amp;gt;getRef(&amp;#039;object&amp;#039;);&lt;br /&gt;
		if( !($subject instanceof umiObject) ) {&lt;br /&gt;
			$subject = $event-&amp;gt;getRef(&amp;#039;entity&amp;#039;);&lt;br /&gt;
			&lt;br /&gt;
		}&lt;br /&gt;
		$typesCollection = umiObjectTypesCollection::getInstance();&lt;br /&gt;
		$umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
		$subjectTypeId = $subject-&amp;gt;getTypeId();&lt;br /&gt;
		$subjectType = $typesCollection-&amp;gt;getType($subjectTypeId);&lt;br /&gt;
		$subjectModule = $subjectType-&amp;gt;getModule();&lt;br /&gt;
		$subjectMethod = $subjectType-&amp;gt;getMethod();&lt;br /&gt;
		if ($subjectModule == &amp;#039;emarket&amp;#039; &amp;amp;&amp;amp; $subjectMethod == &amp;#039;order&amp;#039;){&lt;br /&gt;
			$user_id = permissionsCollection::getInstance()-&amp;gt;getUserId();&lt;br /&gt;
			$user_object = umiObjectsCollection::getInstance()-&amp;gt;getObject($user_id);&lt;br /&gt;
			$groups = $user_object-&amp;gt;getValue(&amp;quot;groups&amp;quot;);&lt;br /&gt;
			foreach ($groups as $val) {&lt;br /&gt;
			  if ($val == 1) {&lt;br /&gt;
				$this-&amp;gt;errorNewMessage(getLabel(&amp;quot;error-require-edit-permissions&amp;quot;));&lt;br /&gt;
				$this-&amp;gt;errorPanic();&lt;br /&gt;
			  }&lt;br /&gt;
			}&lt;br /&gt;
		&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В фрагменте кода  if ($val == 1) { мы проверяем равенство с ID запрещаемой группой пользователей.&lt;br /&gt;
В файле custom_events.php пропишем события:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
	new umiEventListener(&amp;#039;systemModifyObject&amp;#039;, &amp;#039;emarket&amp;#039;, &amp;#039;editOrderDenied&amp;#039;);&lt;br /&gt;
	new umiEventListener(&amp;#039;systemDeleteObject&amp;#039;, &amp;#039;emarket&amp;#039;, &amp;#039;editOrderDenied&amp;#039;);&lt;br /&gt;
	new umiEventListener(&amp;#039;systemModifyPropertyValue&amp;#039;, &amp;#039;emarket&amp;#039;, &amp;#039;editOrderDenied&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Категория:Модуль Пользователи]][[Категория:Написание кастомных макросов]][[Категория:Модуль Интернет магазин]]&lt;/div&gt;</summary>
		<author><name>Velross</name></author>
		
	</entry>
</feed>