Comment résoudre le problème d'autorisation dans le projet d'éducation en ligne sur les céréales

1. Tout d'abord, après avoir copié et intégré toutes les parties avant et arrière, modifiez le chemin de la base de données.

2. Modifiez le chemin de routage dans le uindex.js précédent

3. L'autorisation ne s'affiche pas correctement car il n'y a pas de données clés dans la table de base de données acl_role_permission,
c'est-à-dire que l'autorisation de rôle actuelle doit avoir des données dont l'id_autorisation est 1. C'est comme indiqué dans la figure ci-dessous: après que
chaque rôle a ajouté des autorisations associées, une autre donnée avec permission_id de 1 doit être ajoutée, sinon, le menu ne sera pas affiché.

Insérez la description de l'image ici
Code spécifique:
1. Front end, ajoutez ce code dans acl / role.js

      save2(roleId) {
    
    
        return request({
    
    
          url: `${
     
     api_name}/save2`,
          method: 'post',
          params: {
    
    roleId}
        })
      }, 

2. Dans la page views / acl / role / roleForm.vue

     //插入该角色id附属permission_id=1,固定值,否则菜单不会出现
      saveData() {
    
    
         roleApi.save2(this.roleId).then(
         response =>{
    
    
              if(response.success){
    
    
                this.saveData()
               }
           })
      } 

3. Ajoutez une autre ligne d'appel de méthode:
Insérez la description de l'image ici

4. Backend:

//新增加一个角色信息
@PostMapping("save2")
public R save2(@RequestParam String roleId) {
    
    
    rolePerService.save2(roleId);
    return R.ok();
}
//新增加一个角色信息
void save2(String roleId);
public void save2(String roleId) {
    
    
    QueryWrapper<RolePermission> wrapper=new QueryWrapper<RolePermission>();
    RolePermission r=new RolePermission();
    r.setPermissionId("1");
    r.setRoleId(roleId);
    System.out.println(r);
    QueryWrapper<RolePermission> wrapper2=new QueryWrapper<RolePermission>();
    wrapper2.eq("permission_id",1);
    wrapper2.eq("role_id",roleId);
    RolePermission selectOne = baseMapper.selectOne(wrapper2);
    if(selectOne==null){
    
    
        baseMapper.insert(r);
    }
}

Je suppose que tu aimes

Origine blog.csdn.net/qq_34134299/article/details/109307716
conseillé
Classement