AlexKhymenko / ngx-permissions

Permission and roles based access control for your angular(angular 2,4,5,6,7,9+) applications(AOT, lazy modules compatible
MIT License
936 stars 126 forks source link

Roles With Permissions #198

Open masteruser20 opened 2 years ago

masteruser20 commented 2 years ago

I'm submitting a...


[ ] Regression (a behavior that used to work and stopped working in a new release)
[ ] Bug report  
[ ] Feature request
[x] Documentation issue or request

Current behavior

There is no example how We can use the new methods. like: addRolesWithPermissions.

I don't know how to use permission instead of using role everywhere. I want to be able to use

*ngxPermissionsOnly=['CAN_EDIT']

instead of using

*ngxPermissionsOnly=['EDITOR', 'REVIEWER', 'MODERATOR']

public setRolesAndPermissions() {
        this.ngxRolesService.addRolesWithPermissions({
            'GUEST': [],
            'USER': [],
            'EDITOR': ['CAN_EDIT'],
            'REVIEWER': ['CAN_EDIT'],
            'MODERATOR': ['CAN_EDIT']
        })

        // TODO temporary role
        this.ngxPermissionService.addPermission(['EDITOR']);
        this.ngxPermissionService.loadPermissions(['EDITOR']);
    }

Its working only with *ngxPermissionsOnly=['EDITOR'] but is there any option to handle permissions instead of role?

I tought that using 'addRolesWithPermissions' I will only define everything and later than using .loadPermissions(['ROLE_NAME']) I will have assigned appopriate permissions from the given configuration.

masteruser20 commented 2 years ago

after a while I figured that it might be a solution...:

    private readonly rolesPermissions = {
        'GUEST': [],
        'USER': [],
        'EDITOR': ['CAN_EDIT'],
        'REVIEWER': ['CAN_EDIT'],
        'MODERATOR': ['CAN_EDIT']
    }

    public setRolesAndPermissions() {
        this.ngxRolesService.addRolesWithPermissions(this.rolesPermissions)
        this.ngxPermissionService.loadPermissions(this.rolesPermissions['MODERATOR']);
    }
swapnil0545 commented 1 year ago

@masteruser20 Can you give a complete example with html also? I am looking for implementing similar. I have to dynamically create roles with specific permissions and that should constitute to hide/show the ui components. Still have to figure out how that will map to backend apis also. Any help would be appreciated. Thanks.