Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
MKCLOS
Core Development Platform
corepkgv2
Merge requests
!87
Fix: Role based access by checking group
Code
Review changes
Check out branch
Download
Patches
Plain diff
Merged
Fix: Role based access by checking group
kt_Fix_RoleBasedAccess
into
devbranch
Overview
0
Commits
2
Pipelines
0
Changes
2
Merged
Akshay Bharambe
requested to merge
kt_Fix_RoleBasedAccess
into
devbranch
5 years ago
Overview
0
Commits
2
Pipelines
0
Changes
2
Expand
Fix: Role-based access by checking group
0
0
Merge request reports
Compare
devbranch
devbranch (base)
and
latest version
latest version
7ee01440
2 commits,
5 years ago
2 files
+
17
−
0
Expand all files
Preferences
File browser
List view
Tree view
Compare changes
Inline
Side-by-side
Show whitespace changes
Show one file at a time
Search (e.g. *.vue) (Ctrl+P)
routebuildermdl/routebuildermdl.go
+
16
−
0
Options
@@ -40,6 +40,10 @@ func executeService(name string, data []byte, isRestricted, isRoleBased, heavyDa
if
isRestricted
{
if
isRoleBased
{
service
,
found
=
roleBasedServices
.
Get
(
name
)
if
!
validateRoleFromToken
(
principalObj
,
service
.
(
ServiceCache
))
{
loggermdl
.
LogError
(
"INVALID_ACTOR: "
+
name
)
return
nil
,
nextDynamicPage
,
ab
,
isCompressed
,
errormdl
.
SERVICENOTFOUND
,
errormdl
.
Wrap
(
"INVALID_ACTOR: "
+
name
)
}
}
else
{
service
,
found
=
restrictedServices
.
Get
(
name
)
}
@@ -99,6 +103,18 @@ func executeService(name string, data []byte, isRestricted, isRoleBased, heavyDa
return
result
,
nextDynamicPage
,
ab
,
isCompressed
,
errormdl
.
EXPECTATIONFAILED
,
serviceError
}
func
validateRoleFromToken
(
principalObj
servicebuildermdl
.
Principal
,
service
ServiceCache
)
bool
{
// check if group from request is present in groups associated with the service.
for
_
,
g
:=
range
service
.
Groups
{
for
_
,
tokenGroup
:=
range
principalObj
.
Groups
{
if
g
==
tokenGroup
{
return
true
}
}
}
return
false
}
func
(
s
ServiceCache
)
preHooksExec
(
rs
*
gjson
.
Result
,
principalObj
*
servicebuildermdl
.
Principal
)
{
for
i
:=
0
;
i
<
len
(
s
.
PreHooks
);
i
++
{
var
service
interface
{}
Menu
Explore
Projects
Groups
Topics
Snippets