user-util.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /* eslint-disable no-console */
  2. export default {
  3. get user() {
  4. const val = sessionStorage.getItem('user');
  5. try {
  6. if (val) return JSON.parse(val);
  7. } catch (err) {
  8. console.error(err);
  9. }
  10. return null;
  11. },
  12. set user(userinfo) {
  13. sessionStorage.setItem('user', JSON.stringify(userinfo));
  14. if (this.unit) {
  15. this.lastUnit = this.unit;
  16. }
  17. },
  18. get token() {
  19. return sessionStorage.getItem('token') || '';
  20. },
  21. set token(token) {
  22. sessionStorage.setItem('token', token);
  23. },
  24. get isGuest() {
  25. return !this.user || this.user.role === 'guest';
  26. },
  27. get unit() {
  28. if (!this.user || this.user.iss !== 'platform') return undefined;
  29. const unit = this.user.sub.split('@', 2)[1] || 'master';
  30. return unit;
  31. },
  32. get platform() {
  33. const unit = this.unit || this.lastUnit;
  34. return unit === 'master' ? 'master' : 'school';
  35. },
  36. set lastUnit(value) {
  37. localStorage.setItem('unit', value);
  38. },
  39. get lastUnit() {
  40. return localStorage.getItem('unit');
  41. },
  42. save({ userinfo, token }) {
  43. this.user = userinfo;
  44. this.token = token;
  45. },
  46. };