From aff774dc58727c90b6921e71e3b75bf5e8cf733b Mon Sep 17 00:00:00 2001
From: Ramesh Kumar <ramesh.p@matriotsolutions.com>
Date: Thu, 7 Apr 2022 19:04:09 +0530
Subject: [PATCH] TMSS-1640: Permissions added for subtask actions in task view
 page

---
 .../src/authenticate/permission.stack.handler.js      |  2 +-
 SAS/TMSS/frontend/tmss_webapp/src/routes/Task/view.js | 11 ++++++-----
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/SAS/TMSS/frontend/tmss_webapp/src/authenticate/permission.stack.handler.js b/SAS/TMSS/frontend/tmss_webapp/src/authenticate/permission.stack.handler.js
index 13c31fe7e28..9782e964be9 100644
--- a/SAS/TMSS/frontend/tmss_webapp/src/authenticate/permission.stack.handler.js
+++ b/SAS/TMSS/frontend/tmss_webapp/src/authenticate/permission.stack.handler.js
@@ -171,7 +171,7 @@ const PermissionStackUtil = {
         const allowedPermission = await AuthService.getAccessControlMethod(url);
         permissionStack[module] = {}
         if(allowedPermission) {
-            if(module === 'task_draft' || module === 'task_blueprint') {
+            if(module === 'task_draft' || module === 'task_blueprint' || module === 'subtask') {
                 permissionStack[module][id] ={ 
                     view : _.includes(allowedPermission, 'GET'),
                     edit : _.includes(allowedPermission, 'PUT'),
diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Task/view.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Task/view.js
index 55b62fb4f9b..e408c3c9992 100644
--- a/SAS/TMSS/frontend/tmss_webapp/src/routes/Task/view.js
+++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Task/view.js
@@ -220,6 +220,7 @@ export class TaskView extends Component {
     }
 
     async getSubtaskDetails(subtasks) {
+        const subtaskPermission = await AuthUtil.getUserPermissionByModuleId('subtask', subtasks[0].id);
         let subtaskList = [];
         for(const subtask of subtasks) {
             let subtaskRow = {};
@@ -249,7 +250,7 @@ export class TaskView extends Component {
             subtaskList.push(subtaskRow);
         }
         await this.setState({
-            subtaskRowList: subtaskList
+            subtaskRowList: subtaskList, subtaskPermission: subtaskPermission[subtasks[0].id]
         });
     }
 
@@ -904,12 +905,12 @@ export class TaskView extends Component {
                                                     <span className="p-float-label">
                                                         <>
                                                             <button className="p-link" href="#" style={{ marginLeft: '8px'}} onClick={this.showSubtaskCancelConfirmation} 
-                                                                title={'Cancel Subtasks'} >
-                                                                <i class={'fa fa-ban'}  aria-hidden="true" ></i>
+                                                                title={this.state.subtaskPermission.cancel?'Cancel Subtasks': `${this.access_denied_message} to cancel`}>
+                                                                <i class={`fa fa-ban ${!this.state.subtaskPermission.cancel?'fa-disabled':''}`}  aria-hidden="true" ></i>
                                                             </button>
                                                             <button className="p-link" href="#" style={{ marginLeft: '8px'}} onClick={this.showSubtaskObsoleteConfirmation} 
-                                                                title={'Mark as Obsolete'}>
-                                                                <i class={'far fa-times-circle'} aria-hidden="true" ></i>
+                                                                title={this.state.subtaskPermission.obsolete?'Mark as Obsolete': `${this.access_denied_message} to mark as obsolete`}>
+                                                                <i class={`far fa-times-circle ${!this.state.subtaskPermission.obsolete?'fa-disabled':''}`} aria-hidden="true" ></i>
                                                             </button>
                                                         </>
                                                     </span>
-- 
GitLab