Добрый день!
На портале самообслуживания PortalMainPageModule создаем виджет Список DashboardGrid (он же блок итогов Список, он же реестр в итогах) и в него выводим, например контрагентов.
Если страницу смотреть пользователем с ролями "Все сотрудники компании"+"Системные администраторы", то в колонке Название будет ссылка, по которой можно перейти на страницу редактирования контрагента.
Если же заходить с ролью "Все пользователи портала", в колонке span, перейти никуда нельзя.
Есть ли такая возможность для пользователей с ролью "Все пользователи портала" сделать переход в страницы редактирования объектов, указанных в качестве источника данных для виджета типа список?
Нравится
Добрый день, Борис.
В данном случае система работает верно. У портальных пользователей нет доступа к объектам системы вне Портала самообслуживания. Чтобы они имели доступ к контрагентам, им придется предоставить доступ ко всей системе, создав к примеру, отдельное рабочее место с нужными им разделами, либо функциональную группу с соответственными правами на чтение. Но для этого портальным пользователям также нужно будет раздать лицензии.
С уважением, Антон.
Антон Малий,
Антон, доступ есть.
Регулируется раздачей прав на объекты и двумя справочниками:
- Список объектов, доступных пользователям портала
- Список полей объектов на портале
но перейти в карточку нужной сущности не получится, потому что на портале зарегистрированы только разделы обращений, базы знаний и еще один не помню какой и система устраивает проверку на предмет входимости сущности в список этих разделов.
Выход есть, даже два:
- инструкция Установка+разделов+на+портале.doc, она упоминается в одном из топиков на этом сайте, например, мне ее выполнение показалось через чур трудоемкой операцией, я провел исследования и выяснил способ 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 }; }; } },
Отдельное спасибо Варфоломеев Данила за идею!