Skip to content

Commit 7852e4c

Browse files
author
kishan789dev
committed
changes made to fix the bug is done
1 parent a1ec9fe commit 7852e4c

File tree

2 files changed

+21
-12
lines changed

2 files changed

+21
-12
lines changed

api/restHandler/app/pipeline/configure/BuildPipelineRestHandler.go

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -600,11 +600,13 @@ func (handler *PipelineConfigRestHandlerImpl) TriggerCiPipeline(w http.ResponseW
600600
appObject, _ := handler.enforcerUtil.GetAppRBACNameByAppId(ciPipeline.AppId)
601601
workflowObject := handler.enforcerUtil.GetWorkflowRBACByCiPipelineId(ciTriggerRequest.PipelineId, workflowName)
602602
triggerObject := handler.enforcerUtil.GetTeamEnvRBACNameByCiPipelineIdAndEnvIdOrName(ciTriggerRequest.PipelineId, ciTriggerRequest.EnvironmentId, envName)
603-
appRbacOk := handler.enforcer.Enforce(token, casbin.ResourceApplications, casbin.ActionTrigger, appObject)
604-
if !appRbacOk {
603+
var appRbacOk bool
604+
if ciPipeline.App.AppType == helper.Job {
605605
appRbacOk = handler.enforcer.Enforce(token, casbin.ResourceJobs, casbin.ActionTrigger, appObject) && handler.enforcer.Enforce(token, casbin.ResourceWorkflow, casbin.ActionTrigger, workflowObject) && handler.enforcer.Enforce(token, casbin.ResourceJobsEnv, casbin.ActionTrigger, triggerObject)
606-
}
607606

607+
} else {
608+
appRbacOk = handler.enforcer.Enforce(token, casbin.ResourceApplications, casbin.ActionTrigger, appObject)
609+
}
608610
if !appRbacOk {
609611
handler.Logger.Debug(fmt.Errorf("unauthorized user"), "Unauthorized User", http.StatusForbidden)
610612
common.WriteJsonResp(w, err, "Unauthorized User", http.StatusForbidden)
@@ -973,12 +975,11 @@ func (handler *PipelineConfigRestHandlerImpl) GetBuildHistory(w http.ResponseWri
973975
if len(appWorkflowMapping) > 0 {
974976
workflowName = appWorkflowMapping[0].AppWorkflow.Name
975977
}
976-
object, _ := handler.enforcerUtil.GetAppRBACNameByAppId(ciPipeline.AppId)
978+
object, appType := handler.enforcerUtil.GetAppRBACNameByAppId(ciPipeline.AppId)
977979
workflowResourceObject := handler.enforcerUtil.GetWorkflowRBACByCiPipelineId(pipelineId, workflowName)
978-
if ok := handler.enforcer.Enforce(token, casbin.ResourceApplications, casbin.ActionGet, object); ok {
979-
isAuthorised = true
980-
}
981-
if !isAuthorised {
980+
if appType != helper.Job {
981+
isAuthorised = handler.enforcer.Enforce(token, casbin.ResourceApplications, casbin.ActionGet, object)
982+
} else {
982983
isAuthorised = handler.enforcer.Enforce(token, casbin.ResourceJobs, casbin.ActionGet, object) && handler.enforcer.Enforce(token, casbin.ResourceWorkflow, casbin.ActionGet, workflowResourceObject)
983984
}
984985
if !isAuthorised {
@@ -987,7 +988,13 @@ func (handler *PipelineConfigRestHandlerImpl) GetBuildHistory(w http.ResponseWri
987988
}
988989
//RBAC
989990
//RBAC for edit tag access , user should have build permission in current ci-pipeline
990-
triggerAccess := handler.enforcer.Enforce(token, casbin.ResourceApplications, casbin.ActionTrigger, object) || handler.enforcer.Enforce(token, casbin.ResourceJobs, casbin.ActionTrigger, object)
991+
var triggerAccess bool
992+
if appType != helper.Job {
993+
triggerAccess = handler.enforcer.Enforce(token, casbin.ResourceApplications, casbin.ActionTrigger, object)
994+
} else {
995+
handler.enforcer.Enforce(token, casbin.ResourceJobs, casbin.ActionTrigger, object)
996+
}
997+
991998
//RBAC
992999
resp := BuildHistoryResponse{}
9931000
workflowsResp, err := handler.ciHandler.GetBuildHistory(pipelineId, ciPipeline.AppId, offset, limit)

api/restHandler/app/workflow/AppWorkflowRestHandler.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,10 +151,12 @@ func (handler AppWorkflowRestHandlerImpl) DeleteAppWorkflow(w http.ResponseWrite
151151

152152
token := r.Header.Get("token")
153153
//rbac block starts from here
154-
resourceName, _ := handler.enforcerUtil.GetAppRBACNameByAppId(appId)
154+
resourceName, appType := handler.enforcerUtil.GetAppRBACNameByAppId(appId)
155155
workflowResourceName := handler.enforcerUtil.GetRbacObjectNameByAppIdAndWorkflow(appId, appWorkflow.Name)
156-
ok := handler.enforcer.Enforce(token, casbin.ResourceApplications, casbin.ActionDelete, resourceName)
157-
if !ok {
156+
var ok bool
157+
if appType != helper.Job {
158+
ok = handler.enforcer.Enforce(token, casbin.ResourceApplications, casbin.ActionDelete, resourceName)
159+
} else {
158160
ok = handler.enforcer.Enforce(token, casbin.ResourceJobs, casbin.ActionDelete, resourceName) && handler.enforcer.Enforce(token, casbin.ResourceWorkflow, casbin.ActionDelete, workflowResourceName)
159161
}
160162
if !ok {

0 commit comments

Comments
 (0)