Angular 5 ngx-permissions is deleting all permissions on page refresh....How to avoid deleting permissions?

permissions after login

permissions after refresh deleted

after page Refresh Permissions are empty How to avoid deleting of permissions after refresh

Upvotes: 0

Views: 2080

Answers (2)

Abdelhadi Abdo
Abdelhadi Abdo

Reputation: 412

Add request in AppModule to retrieve permissions after every refresh

import { Component, OnInit } from '@angular/core';
import { NgxPermissionsService } from 'ngx-permissions';
import { HttpClient } from '@angular/common/http';
@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {

  title = 'app';

   constructor(private permissionsService: NgxPermissionsService,
               private http: HttpClient) {}

  ngOnInit(): void {
    const perm = ["ADMIN", "EDITOR"];

    this.permissionsService.loadPermissions(perm);

     this.http.get('url').subscribe((permissions) => {
       //const perm = ["ADMIN", "EDITOR"]; example of permissions
       this.permissionsService.loadPermissions(permissions);
    })
  }
}

more here: https://github.com/AlexKhymenko/ngx-permissions/wiki

Upvotes: 1

cyberpirate92
cyberpirate92

Reputation: 3186

If you want data to persist across sessions, you can use the browser's LocalStorage API.

To add an item,

window.localStorage.setItem("permissions", JSON.stringify(this.permissions));

To retrive it,

this.permissions = JSON.parse(window.localStorage.getItem("permissions"));

To remove an item,

window.localStorage.removeItem("permissions");

You can inspect the localStorage items in Chrome Developer tools, Under Application>Storage>Local Storage

NOTE: This method fails if cookies are not enabled.

PS: I wouldn't recommend storing permissions in LocalStorage, it's better to fetch them from an API call.

Upvotes: 1

Related Questions