{"version":3,"sources":["webpack:///./src/views/feedback/side-menus/DetailFeedback.vue?afe7","webpack:///./src/permissions/feedback.permissions.ts","webpack:///./src/views/feedback/side-menus/DetailFeedback.vue","webpack:///./src/views/feedback/side-menus/DetailFeedback.vue?3ded","webpack:///./src/views/feedback/side-menus/DetailFeedback.vue?4a68","webpack:///./src/components/structure/MixinsSideComponent.ts","webpack:///./src/permissions/abstract/permissions.handler.ts"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","_v","_s","feedback","name","canView","attrs","_e","canEdit","title","feedbackType","_f","dateStart","dateEnd","idUser","user","domProps","description","staticRenderFns","Check","backoffice","View","Edit","Delete","CdnUrl","feedbackPermissions","isLoading","isValid","endsWith","substring","length","args","component","VBtn","BaseSideComponent","closeSideMenu","PermissionModes","PermissionsHandler","interfac","module","isConfiguration","viewMode","currentUser","role","roles","find","s","interface","state","identity"],"mappings":"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","file":"js/chunk-35c05dcc.fad09106.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.feedback)?_c('div',{staticClass:\"card card-preview\"},[_c('div',{staticClass:\"card-header\"},[_c('div',{staticClass:\"card-header__box d-flex align-stretch\"},[_c('div',{staticClass:\"card-header__box--content w-100 d-flex flex-column justify-space-between\"},[_c('h2',{staticClass:\"text-h1 text-white font-weight-light mb-4\"},[_vm._v(_vm._s(_vm.feedback.name))]),_c('div',{staticClass:\"d-flex align-center justify-space-between w-100\"},[_c('div',[_vm._v(\"Avaliação\")]),_c('div',[(_vm.canView())?_c('v-btn',{attrs:{\"rounded\":\"\",\"outlined\":\"\",\"color\":\"white\",\"to\":(\"/feedback/survey/\" + (_vm.feedback.idFeedback))}},[_vm._v(\"Ver detalhe\")]):_vm._e(),(_vm.canEdit())?_c('v-btn',{staticClass:\"ml-2\",attrs:{\"rounded\":\"\",\"outlined\":\"\",\"color\":\"primary\",\"to\":(\"/feedback/survey/\" + (_vm.feedback.idFeedback) + \"/edit\")}},[_vm._v(\"Editar\")]):_vm._e()],1)])])])]),_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"card--box\"},[_c('div',{staticClass:\"d-flex align-center justify-space-between w-100\"},[(_vm.feedback.title)?_c('div',{staticClass:\"mr-2\"},[_c('strong',[_vm._v(\"Designação: \")]),_vm._v(_vm._s(_vm.feedback.title)+\" \")]):_vm._e(),(_vm.feedback.feedbackType)?_c('div',[_c('strong',[_vm._v(\"Tipo: \")]),_vm._v(_vm._s(_vm.feedback.feedbackType.title)+\" \")]):_vm._e()]),_c('div',{staticClass:\"d-flex align-center justify-space-between w-100 mt-2\"},[(_vm.feedback.dateStart)?_c('div',{staticClass:\"mr-2\"},[_c('strong',[_vm._v(\"Data de Inicio:\")]),_vm._v(\" \"+_vm._s(_vm._f(\"date\")(_vm.feedback.dateStart)))]):_vm._e(),(_vm.feedback.dateEnd)?_c('div',[_c('strong',[_vm._v(\"Data de Fim: \")]),_vm._v(_vm._s(_vm._f(\"date\")(_vm.feedback.dateEnd)))]):_vm._e()]),(_vm.feedback.idUser>0)?_c('div',{staticClass:\"mt-2\"},[_c('strong',[_vm._v(\"Utilizador: \")]),_vm._v(\" \"+_vm._s(_vm.feedback.user.name)+\" \")]):_vm._e(),_c('div',{staticClass:\"mt-2\"},[_c('strong',[_vm._v(\"Descripção: \")]),_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.feedback.description)}})])])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import PermissionsHandler, {\r\n PermissionModes\r\n} from \"./abstract/permissions.handler\";\r\nimport { FeedbackDto } from \"@/server/app.dtos\";\r\n\r\nexport default class FeedbackPermissions extends PermissionsHandler {\r\n canView(user: FeedbackDto): boolean {\r\n return this.Check(this.backoffice, \"feedbacks\", false, PermissionModes.View);\r\n }\r\n\r\n canEdit(user: FeedbackDto): boolean {\r\n return this.Check(this.backoffice, \"feedbacks\", false, PermissionModes.Edit);\r\n }\r\n\r\n canDelete(user: FeedbackDto): boolean {\r\n return this.Check(this.backoffice, \"feedbacks\", false, PermissionModes.Delete);\r\n }\r\n}\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component } from \"vue-property-decorator\";\r\nimport { Getter } from \"vuex-class\";\r\nimport { BaseSideComponent } from \"@/components/structure/MixinsSideComponent\";\r\nimport FeedbackPermissions from \"@/permissions/feedback.permissions\";\r\nimport { LanguageDto, FeedbackDto } from \"@/server/app.dtos\";\r\n\r\n@Component\r\nexport default class DetailFeedbackSideMenuComponent extends BaseSideComponent {\r\n CdnUrl: string = process.env.VUE_APP_CDN_URL;\r\n @Getter(\"currentLanguage\") currentLanguage!: LanguageDto;\r\n feedbackPermissions: FeedbackPermissions = new FeedbackPermissions();\r\n isLoading: boolean = false;\r\n isValid: boolean = false;\r\n\r\n constructor() {\r\n super();\r\n if (this.CdnUrl.endsWith(\"/\")) {\r\n this.CdnUrl = this.CdnUrl.substring(0, this.CdnUrl.length - 1);\r\n }\r\n }\r\n\r\n get feedback(): FeedbackDto | null {\r\n return this.args?.feedback || null;\r\n }\r\n\r\n canView(): boolean {\r\n if (this.feedback) return this.feedbackPermissions.canView(this.feedback) || false;\r\n return false;\r\n }\r\n\r\n canEdit(): boolean {\r\n if (this.feedback) return this.feedbackPermissions.canEdit(this.feedback) || false;\r\n return false;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DetailFeedback.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DetailFeedback.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DetailFeedback.vue?vue&type=template&id=34282f88&\"\nimport script from \"./DetailFeedback.vue?vue&type=script&lang=ts&\"\nexport * from \"./DetailFeedback.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VBtn})\n","import { Component, Vue, Prop } from \"vue-property-decorator\";\r\nimport { Getter } from \"vuex-class\";\r\nimport { CurrentUser } from \"@/models/auth/current.user\";\r\nimport { LayoutServiceBus } from \"@/services/bus/layout.service\";\r\nimport { LanguageDto } from \"@/server/app.dtos\";\r\n\r\n@Component\r\nexport class BaseSideComponent extends Vue {\r\n @Prop() args: any;\r\n @Getter(\"identity\") identity!: CurrentUser;\r\n @Getter(\"currentLanguage\") currentLanguage!: LanguageDto;\r\n\r\n candEdit(): boolean {\r\n return false;\r\n }\r\n\r\n close(): void {\r\n LayoutServiceBus.closeSideMenu();\r\n }\r\n}\r\n","import store from \"@/store/index\";\r\nimport { CurrentUser } from \"@/models/auth/current.user\";\r\n\r\nexport enum PermissionModes {\r\n View,\r\n Edit,\r\n Delete\r\n}\r\n\r\nexport default class PermissionsHandler {\r\n get currentUser(): CurrentUser | null {\r\n return store.state.identity;\r\n }\r\n\r\n backoffice: string = \"Backoffice\";\r\n\r\n Check(\r\n interfac: string,\r\n module: string,\r\n isConfiguration: boolean,\r\n viewMode: PermissionModes\r\n ): boolean {\r\n // Current user does not have role for the interface\r\n\r\n // if (current?.Roles == null || !current.Roles.Any())\r\n // return (false, null);\r\n // var appPermission = current.Roles.FirstOrDefault(s => s.Interface == @interface);\r\n // if (appPermission == null)\r\n // return (false, null);\r\n // var rolePermission = appPermission.Permissions.FirstOrDefault(s => s.Module == module);\r\n // if (rolePermission == null)\r\n // return (false, null);\r\n // if (isConfiguration)\r\n // return (rolePermission.CanManageConfigurations, rolePermission);\r\n // switch (action)\r\n // {\r\n // case ActionModes.Custom:\r\n // return (true, rolePermission);\r\n // case ActionModes.Query:\r\n // return (rolePermission.ViewMode != PermissionTypes.None, rolePermission);\r\n // case ActionModes.Create:\r\n // case ActionModes.Edit:\r\n // return (rolePermission.EditMode != PermissionTypes.None, rolePermission);\r\n // case ActionModes.Remove:\r\n // return (rolePermission.DeleteMode != PermissionTypes.None, rolePermission);\r\n // default:\r\n // return (false, rolePermission);\r\n\r\n if (this.currentUser == null) return false;\r\n\r\n const role = !this.currentUser.roles.find(s => s.interface == interfac);\r\n if (role == null) return false;\r\n\r\n // TODO: check permissions based on current user and their roles\r\n return true;\r\n }\r\n}\r\n"],"sourceRoot":""}