前端修改用户管理-涉及三个权限

需求:修改系统用户管理,用户有三个权限,金卡管理员,管理员,普通用户。

三个角色在页面上显示的内容不一样,共同点都是用户列表:

金卡:可以看到【管理员】【普通用户】的

管理员:可以看到自己个普通用户的

普通用户:只能看到自己的

目前功能:每行数据后面,新增【编辑】,弹窗,用户名disabled默认自带,旧密码(分角色权限),新密码,确认密码。

确认流程:每个角色可以修改自己的密码,需要旧密码。金卡改管理员,不用旧密码,只用新密码和确认密码;管理员修改普通用户,也是只用新密码和确认密码。

修改密码前,我们肯定是要先获取用户列表数组,那现在后端返回我一个数组,里面有个对象

{
    id:1,
    username:刘德华,
    flag:true
},
 {
    id:2,
    username:刘德华,
    flag:true
},
{
    id:3,
    username:路人甲,
    flag:false
}, 

角色的分配是根据flag来判断,为真就是管理员,为假就是普通用户

那么,提出疑问:是否可以根据flag,来判断修改密码的时候,旧密码是否显示的条件呢?

答案:肯定是不行的

因为,当普通用户登录时候,路人甲的flage为false,但是普通用户改自己密码,需要旧密码。

所以,本文重点来了,当出现三个角色权限的时候修改密码,我们可以根据用户名判断

当前登录系统用户名和修改用户,是否一致,就显示旧密码,证明是自己改自己密码,需要旧密码;如果不一致,就不显示

获取系统登录用户名:

this.sysLoginUser = window.sessionStorage.getItem('user');

密码修改成功后,路由重定向:

   if(this.sysLoginUser === username  ){
        // console.log('登录用户名和修改用户一致,应该显示旧密码')
        this.currentUserFlag = true;
      }else{
        // console.log('登录用户名不是修改用户,不显示旧密码')
        this.currentUserFlag = false;
      }

传参:
  if (this.currentUserFlag) { 
        this.editForm.old_password = this.editForm.old_password; 
      } else { 
        delete this.editForm.old_password;
      }


调接口:
await updatePasswordAPI(this.editForm) 
 this.backLogin();


路由重定向:
    backLogin(){
      if (this.currentUserFlag) { 
        this.$router.push('/login'); 
      } else { 
      }
    },

优化自己修改自己密码成功后,因为密码变了,所以需要用户重新登录,路由重定向到login如果管理员修改普通用户密码,则不需要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值