Вопрос

Кастомизация портала самообслуживания

Добрый день!

На портале самообслуживания PortalMainPageModule создаем виджет Список DashboardGrid (он же блок итогов Список, он же реестр в итогах) и в него выводим, например контрагентов.

Если страницу смотреть пользователем с ролями "Все сотрудники компании"+"Системные администраторы", то в колонке Название будет ссылка, по которой можно перейти на страницу редактирования контрагента.

Если же заходить с ролью "Все пользователи портала", в колонке span, перейти никуда нельзя.

Есть ли такая возможность для пользователей с ролью "Все пользователи портала" сделать переход в страницы редактирования объектов, указанных в качестве источника данных для виджета типа список?

Нравится

2 комментария

Добрый день, Борис.

В данном случае система работает верно. У портальных пользователей нет доступа к объектам системы вне Портала самообслуживания. Чтобы они имели доступ к контрагентам, им придется предоставить доступ ко всей системе, создав к примеру, отдельное рабочее место с нужными им разделами, либо функциональную группу с соответственными правами на чтение. Но для этого портальным пользователям также нужно будет раздать лицензии.

С уважением, Антон.

Антон Малий,

Антон, доступ есть.

Регулируется раздачей прав на объекты и двумя справочниками:

  1. Список объектов, доступных пользователям портала
  2. Список полей объектов на портале

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

Выход есть, даже два:

  1. инструкция Установка+разделов+на+портале.doc, она упоминается в одном из топиков на этом сайте, например, мне ее выполнение показалось через чур трудоемкой операцией, я провел исследования и выяснил способ  2, гораздо проще.
  2. замещаем модуль DashboardListedGridViewModel, копируем из родителя весь код, метод addColumnLink модернизируем:
addColumnLink: function(item, column) {
	//return this.mixins.GridUtilities.addColumnLink.apply(this, arguments);
	this.mixins.GridUtilities.addColumnLink.apply(this, arguments);
	var isSSPUser = this.Terrasoft.CurrentUser.userType === this.Terrasoft.UserType.SSP;
	var entitySchemaName = this.getGridEntitySchemaName();
	var columnPath = column.columnPath;
	if (isSSPUser && entitySchemaName === "Наш_Раздел" && columnPath === "Наша_Колонка") {
		var scope = this;
		var onColumnLinkClickName = "on" + columnPath + "LinkClick";
		item[onColumnLinkClickName] = function() {
			var recordId = item.get("Id");
			if (!recordId) {
				return "";
			}
			var displayValue = item.get("Наша_Колонка");
			if (scope.Ext.isEmpty(displayValue)) {
				return "";
			}
 
			var editPageName = entitySchemaName + "Page";
			var url = Terrasoft.workspaceBaseUrl +
				"/Nui/ViewModule.aspx#CardModuleV2/" + editPageName + "/edit/" + recordId;
			return {
				caption: displayValue,
				target: "_self",
				title: displayValue,
				url: url
			};
		};
	}
},

 

Отдельное спасибо Варфоломеев Данила за идею!

Показать все комментарии