This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
GenerateEffectivePermission | |
Recursively traverses user permissions and UI feature hierarchy to generate | |
effective user permissions for UI screen(s) | |
*/ | |
func (a authUsecase) GenerateEffectivePermission( | |
ctx context.Context, | |
permRoot domain.PermItem, | |
featureRoot domain.PermItem, | |
uiPermRoot domain.PermItem, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func MatchPermission( | |
permission string, | |
pathPart string, | |
) ( | |
bool, | |
error, | |
) { | |
permission = strings.ReplaceAll(permission, ".", "\\.") | |
permission = strings.ReplaceAll(permission, "*", ".*") | |
regex := "^" + permission + "$" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func CheckPermission( | |
permRoot domain.PermItem, | |
pathParts []string, | |
) ( | |
bool, | |
error, | |
) { | |
if permRoot == nil || len(pathParts) == 0 { | |
return true, nil | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
REMIX EXAMPLE PROJECT | |
Remix example project is present when Remix loads very first time or there are no files existing in the File Explorer. | |
It contains 3 directories: | |
1. 'contracts': Holds three contracts with different complexity level, denoted with number prefix in file name. | |
2. 'scripts': Holds two scripts to deploy a contract. It is explained below. | |
3. 'tests': Contains one test file for 'Ballot' contract with unit tests in Solidity. | |
SCRIPTS |