diff --git a/src/api/ADempiere/private-access.js b/src/api/ADempiere/actions/private-access.js similarity index 56% rename from src/api/ADempiere/private-access.js rename to src/api/ADempiere/actions/private-access.js index c089533e..ea518e17 100644 --- a/src/api/ADempiere/private-access.js +++ b/src/api/ADempiere/actions/private-access.js @@ -17,10 +17,8 @@ // Get Instance for connection import { request } from '@/utils/ADempiere/request' -import { convertPrivateAccess } from '@/utils/ADempiere/apiConverts/privateAccess.js' - // Get private access for a record -export function requestGetPrivateAccess({ +export function getPrivateAccess({ tableName, recordId, recordUuid @@ -35,12 +33,16 @@ export function requestGetPrivateAccess({ } }) .then(responsePrivateAccess => { - return convertPrivateAccess(responsePrivateAccess) + return { + tableName: responsePrivateAccess.table_name, + recordId: responsePrivateAccess.record_id, + recordUuid: responsePrivateAccess.record_uuid + } }) } // Lock a record for a user -export function requestLockPrivateAccess({ +export function lockPrivateAccess({ tableName, recordId, recordUuid @@ -55,12 +57,16 @@ export function requestLockPrivateAccess({ } }) .then(responsePrivateAccess => { - return convertPrivateAccess(responsePrivateAccess) + return { + tableName: responsePrivateAccess.table_name, + recordId: responsePrivateAccess.record_id, + recordUuid: responsePrivateAccess.record_uuid + } }) } // Unlock a record from a user -export function requestUnlockPrivateAccess({ +export function unlockPrivateAccess({ tableName, recordId, recordUuid @@ -75,62 +81,10 @@ export function requestUnlockPrivateAccess({ } }) .then(responsePrivateAccess => { - return convertPrivateAccess(responsePrivateAccess) - }) -} - -/** - * List Rol Access Record - * @param {string} tableName - * @param {number} recordId - * @param {string} recordUuid - * @param {string} sessionUuid - */ -export function getAccessList({ - tableName, - recordId, - recordUuid, - sessionUuid -}) { - return request({ - url: '/ui/update-access-record', - method: 'post', - params: { - table_name: tableName, - id: recordId, - uuid: recordUuid, - token: sessionUuid - } - }) - .then(respose => { - return respose - }) -} - -/** - * Update Access Record - * @param {string} tableName - * @param {number} recordId - * @param {string} recordUuid - * @param {array} listRol - */ -export function updateAccessRecord({ - tableName, - recordId, - recordUuid, - listRecord -}) { - return request({ - url: '/ui/update-access-record', - method: 'post', - params: { - table_name: tableName, - id: recordId, - uuid: recordUuid, - list_rol: listRecord - } - }) - .then(response => { - return response + return { + tableName: responsePrivateAccess.table_name, + recordId: responsePrivateAccess.record_id, + recordUuid: responsePrivateAccess.record_uuid + } }) } diff --git a/src/api/ADempiere/actions/record-access.js b/src/api/ADempiere/actions/record-access.js new file mode 100644 index 00000000..409d7ca2 --- /dev/null +++ b/src/api/ADempiere/actions/record-access.js @@ -0,0 +1,121 @@ +// ADempiere-Vue (Frontend) for ADempiere ERP & CRM Smart Business Solution +// Copyright (C) 2017-Present E.R.P. Consultores y Asociados, C.A. +// Contributor(s): Yamel Senih ysenih@erpya.com www.erpya.com +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +// Get Instance for connection +import { request } from '@/utils/ADempiere/request' + +/** + * List Rol Access Record + * @param {string} tableName + * @param {number} recordId + * @param {string} recordUuid + * @param {string} sessionUuid + */ +export function getRecordAccess({ + tableName, + recordId, + recordUuid +}) { + return new Promise(resolve => { + request({ + url: '/ui/record-access', + method: 'get', + params: { + table_name: tableName, + id: recordId, + uuid: recordUuid + } + }) + .then(respose => { + resolve(convertRecordAccess(respose)) + }) + }) +} + +/** + * Update Access Record + * @param {string} tableName + * @param {number} recordId + * @param {string} recordUuid + * @param {array} listRol + */ +export function setRecordAccess({ + recordId, + recordUuid, + tableName, + recordAccesses +}) { + return request({ + url: '/ui/set-record-access', + method: 'post', + data: { + table_name: tableName, + id: recordId, + uuid: recordUuid, + record_accesses: recordAccesses.map(access => { + return { + role_id: access.roleId, + role_uuid: access.roleUuid, + role_name: access.roleName, + is_active: access.isActive, + is_exclude: access.isExclude, + is_read_only: access.isReadOnly, + is_dependent_entities: access.isDependentEntities + } + }) + } + }) + .then(response => { + return response + }) +} + +/** + * Convert stub from request + * @param {Record Access} recordAccess + * @returns + */ +function convertRecordAccess(recordAccess) { + return { + tableName: recordAccess.table_name, + id: recordAccess.id, + uuid: recordAccess.uuid, + availableRoles: recordAccess.available_roles.map(role => { + return convertRecordAccessRole(role) + }), + currentRoles: recordAccess.current_roles.map(role => { + return convertRecordAccessRole(role) + }) + } +} + +/** + * Convert role definition + */ +function convertRecordAccessRole(recordAccessRole) { + if (recordAccessRole) { + return { + roleId: recordAccessRole.role_id, + roleUuid: recordAccessRole.role_uuid, + roleName: recordAccessRole.role_name, + isActive: recordAccessRole.is_active, + isExclude: recordAccessRole.is_exclude, + isReadOnly: recordAccessRole.is_read_only, + isDependentEntities: recordAccessRole.is_dependent_entities + } + } + return undefined +} diff --git a/src/components/ADempiere/ContextMenu/contextMenuDesktop.vue b/src/components/ADempiere/ContextMenu/contextMenuDesktop.vue index 5703355f..5f765223 100644 --- a/src/components/ADempiere/ContextMenu/contextMenuDesktop.vue +++ b/src/components/ADempiere/ContextMenu/contextMenuDesktop.vue @@ -271,6 +271,7 @@ export default { } else if (action.action === 'recordAccess') { this.$store.commit('changeShowRigthPanel', true) this.$store.commit('setRecordAccess', true) + this.$store.commit('attributeEmbedded', action) this.runAction(action) } else { this.runAction(action) diff --git a/src/components/ADempiere/ContextMenu/contextMenuMixin.js b/src/components/ADempiere/ContextMenu/contextMenuMixin.js index b542d171..11009a73 100644 --- a/src/components/ADempiere/ContextMenu/contextMenuMixin.js +++ b/src/components/ADempiere/ContextMenu/contextMenuMixin.js @@ -426,11 +426,6 @@ export default { } } if (this.isWindow && this.isEmptyValue(this.actions.find(element => element.action === 'recordAccess'))) { - this.$store.dispatch('addAttribute', { - tableName: this.tableNameCurrentTab, - recordId: this.getCurrentRecord[this.tableNameCurrentTab + '_ID'], - recordUuid: this.$route.query.action - }) this.actions.push(this.recordAccess) } diff --git a/src/components/ADempiere/Dialog/embedded.vue b/src/components/ADempiere/Dialog/embedded.vue new file mode 100644 index 00000000..a60d4ed8 --- /dev/null +++ b/src/components/ADempiere/Dialog/embedded.vue @@ -0,0 +1,207 @@ + + + + + + diff --git a/src/components/ADempiere/Dialog/index.vue b/src/components/ADempiere/Dialog/index.vue index 89762832..652cd711 100644 --- a/src/components/ADempiere/Dialog/index.vue +++ b/src/components/ADempiere/Dialog/index.vue @@ -17,6 +17,7 @@ --> - + + alooooooooo import MainPanel from '@/components/ADempiere/Panel' import SequenceOrder from '@/components/ADempiere/SequenceOrder' -import RecordAccess from '@/components/ADempiere/RecordAccess' import { showNotification } from '@/utils/ADempiere/notification' -import { - updateAccessRecord -} from '@/api/ADempiere/private-access' + export default { name: 'ModalProcess', components: { MainPanel, - SequenceOrder, - RecordAccess + SequenceOrder }, props: { parentUuid: { @@ -110,7 +105,7 @@ export default { if (this.isMobile) { return 80 } - return 50 + return 80 }, isVisibleDialog() { return this.$store.state['process/index'].isVisibleDialog @@ -232,7 +227,8 @@ export default { } if (action.action === undefined) { const list = this.$store.getters.getListRecordAcces - updateAccessRecord(list) + // updateAccessRecord(list) + console.log(list) } } } diff --git a/src/components/ADempiere/RecordAccess/index.vue b/src/components/ADempiere/RecordAccess/index.vue index 60beafb1..44996eed 100644 --- a/src/components/ADempiere/RecordAccess/index.vue +++ b/src/components/ADempiere/RecordAccess/index.vue @@ -1,12 +1,24 @@ @@ -255,7 +181,28 @@ export default { }