RBAC权限CRUD和Controller API
This commit is contained in:
parent
74976ade9c
commit
8f1ee8896b
@ -0,0 +1,40 @@
|
|||||||
|
package com.example.springdemo.controller;
|
||||||
|
|
||||||
|
import com.example.springdemo.entities.RBAC.Permissions;
|
||||||
|
import com.example.springdemo.service.PermissionsService;
|
||||||
|
import com.example.springdemo.utils.RoleVerificationAnnotation;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/permissions")
|
||||||
|
@RoleVerificationAnnotation(UserIDList = {1})
|
||||||
|
public class PermissionsController {
|
||||||
|
@Resource
|
||||||
|
private PermissionsService permissionsService;
|
||||||
|
|
||||||
|
@PostMapping("/add")
|
||||||
|
public Permissions addPermissions(@RequestBody Permissions permissions) {
|
||||||
|
return permissionsService.createPermissions(permissions);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/delete")
|
||||||
|
public void deletePermissions(@RequestParam("id") Long permissionsID) {
|
||||||
|
permissionsService.deletePermissions(permissionsID);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/update")
|
||||||
|
public Permissions updatePermissions(@RequestBody Permissions permissions) {
|
||||||
|
return permissionsService.updatePermissions(permissions);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get")
|
||||||
|
public Iterable<Permissions> getAllPermissions() {
|
||||||
|
return permissionsService.getAllPermissions();
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get")
|
||||||
|
public Permissions getPermissions(@RequestParam Long permissionsID) {
|
||||||
|
return permissionsService.getPermissions(permissionsID);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
package com.example.springdemo.controller;
|
||||||
|
|
||||||
|
import com.example.springdemo.entities.RBAC.Roles;
|
||||||
|
import com.example.springdemo.service.RolesService;
|
||||||
|
import com.example.springdemo.utils.RoleVerificationAnnotation;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
@RoleVerificationAnnotation(UserIDList = {1})
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/roles")
|
||||||
|
public class RolesController {
|
||||||
|
@Resource
|
||||||
|
private RolesService rolesService;
|
||||||
|
|
||||||
|
@PostMapping("/add")
|
||||||
|
public Roles addRoles(@RequestBody Roles roles) {
|
||||||
|
return rolesService.createRoles(roles);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/delete")
|
||||||
|
public void deleteRoles(@RequestParam("id") Long rolesID) {
|
||||||
|
rolesService.deleteRoles(rolesID);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/update")
|
||||||
|
public Roles updateRoles(@RequestBody Roles roles) {
|
||||||
|
return rolesService.updateRoles(roles);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get")
|
||||||
|
public Iterable<Roles> getAllRoles() {
|
||||||
|
return rolesService.getAllRoles();
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get")
|
||||||
|
public Roles getRoles(@RequestParam Long rolesID) {
|
||||||
|
return rolesService.getRolesById(rolesID);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get")
|
||||||
|
public Roles getRoles(@RequestParam String rolesName) {
|
||||||
|
return rolesService.getRolesByName(rolesName);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,44 @@
|
|||||||
|
package com.example.springdemo.controller;
|
||||||
|
|
||||||
|
import com.example.springdemo.entities.RBAC.RolesPermissions;
|
||||||
|
import com.example.springdemo.service.RolesPermissionsService;
|
||||||
|
import com.example.springdemo.utils.RoleVerificationAnnotation;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
@RoleVerificationAnnotation(UserIDList = {1})
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/rolesPermissions")
|
||||||
|
public class RolesPermissionsController {
|
||||||
|
@Resource
|
||||||
|
private RolesPermissionsService rolesPermissionsService;
|
||||||
|
|
||||||
|
@PostMapping("/assign")
|
||||||
|
public RolesPermissions assignPermissionsToRole(@RequestBody RolesPermissions rolesPermissions) {
|
||||||
|
return rolesPermissionsService.AssignPermissionsToRole(rolesPermissions);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/remove")
|
||||||
|
public String removePermissionsFromRole(@RequestParam(name = "roleId") Long roleId, @RequestParam(name = "permissionId") Long permissionId) {
|
||||||
|
if (rolesPermissionsService.RemovePermissionsFromRole(roleId, permissionId)) {
|
||||||
|
return "remove success";
|
||||||
|
} else {
|
||||||
|
return "remove failed, you can't update or delete admin role";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/update")
|
||||||
|
public String updateRolePermissions(@RequestParam(name = "roleId") Long roleId, @RequestParam(name = "permissionId") Long permissionId) {
|
||||||
|
if (rolesPermissionsService.updateRolePermissions(roleId, permissionId)) {
|
||||||
|
return "update success";
|
||||||
|
} else {
|
||||||
|
return "update failed, you can't update or delete admin role";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/find")
|
||||||
|
public RolesPermissions getRolePermissionById(@RequestParam(name = "rolesPermissionsId") Long rolesPermissionsId) {
|
||||||
|
return rolesPermissionsService.getRolePermissionById(rolesPermissionsId);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
package com.example.springdemo.dao;
|
||||||
|
|
||||||
|
import com.example.springdemo.entities.RBAC.Permissions;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface PermissionsRepository
|
||||||
|
extends JpaRepository<Permissions, Long> {
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
package com.example.springdemo.dao;
|
||||||
|
|
||||||
|
import com.example.springdemo.entities.RBAC.RolesPermissions;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.data.jpa.repository.Modifying;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface RolesPermissionsRepository
|
||||||
|
extends JpaRepository<RolesPermissions, Long> {
|
||||||
|
|
||||||
|
@Modifying
|
||||||
|
@Transactional
|
||||||
|
@Query(value = "delete from RolesPermissions " +
|
||||||
|
"where RolesID = ?1 and PermissionsID = ?2", nativeQuery = true)
|
||||||
|
void RemovePermissionsFromRole(Long roleId, Long permissionId);
|
||||||
|
|
||||||
|
@Modifying
|
||||||
|
@Transactional
|
||||||
|
@Query(value = "update RolesPermissions set RolesID = ?1, PermissionsID = ?2 " +
|
||||||
|
"where RolesID = ?1 and PermissionsID = ?2", nativeQuery = true)
|
||||||
|
void updateRolePermissions(Long roleId, Long permissionId);
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
package com.example.springdemo.dao;
|
||||||
|
|
||||||
|
import com.example.springdemo.entities.RBAC.Roles;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface RolesRepository
|
||||||
|
extends JpaRepository<Roles, Long> {
|
||||||
|
|
||||||
|
Roles findByName(String name);
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
package com.example.springdemo.service;
|
||||||
|
|
||||||
|
import com.example.springdemo.entities.RBAC.Permissions;
|
||||||
|
|
||||||
|
public interface PermissionsService {
|
||||||
|
|
||||||
|
Permissions createPermissions(Permissions permissions);
|
||||||
|
|
||||||
|
Permissions updatePermissions(Permissions permissions);
|
||||||
|
|
||||||
|
void deletePermissions(Long id);
|
||||||
|
|
||||||
|
Permissions getPermissions(Long id);
|
||||||
|
|
||||||
|
Iterable<Permissions> getAllPermissions();
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
package com.example.springdemo.service;
|
||||||
|
|
||||||
|
import com.example.springdemo.dao.PermissionsRepository;
|
||||||
|
import com.example.springdemo.entities.RBAC.Permissions;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class PermissionsServiceImpl implements PermissionsService {
|
||||||
|
@Resource
|
||||||
|
private PermissionsRepository permissionsRepository;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Permissions createPermissions(Permissions permissions) {
|
||||||
|
|
||||||
|
return permissionsRepository.save(permissions);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Permissions updatePermissions(Permissions permissions) {
|
||||||
|
return permissionsRepository.save(permissions);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deletePermissions(Long permissionsID) {
|
||||||
|
permissionsRepository.deleteById(permissionsID);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Permissions getPermissions(Long permissionsID) {
|
||||||
|
return permissionsRepository.findById(permissionsID).orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Iterable<Permissions> getAllPermissions() {
|
||||||
|
return permissionsRepository.findAll();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package com.example.springdemo.service;
|
||||||
|
|
||||||
|
import com.example.springdemo.entities.RBAC.RolesPermissions;
|
||||||
|
import com.example.springdemo.entities.Users;
|
||||||
|
|
||||||
|
public interface RolesPermissionsService {
|
||||||
|
RolesPermissions AssignPermissionsToRole(RolesPermissions rolesPermissions);
|
||||||
|
|
||||||
|
Boolean RemovePermissionsFromRole(Long roleId, Long permissionId);
|
||||||
|
|
||||||
|
Boolean updateRolePermissions(Long roleId, Long permissionId);
|
||||||
|
|
||||||
|
RolesPermissions getRolePermissionById(Long rolesPermissionsId);
|
||||||
|
|
||||||
|
Iterable<RolesPermissions> getAllRolesPermissions();
|
||||||
|
|
||||||
|
Boolean CheckIfDeleteOrUpdateAdmin(Long roleId);
|
||||||
|
}
|
@ -0,0 +1,54 @@
|
|||||||
|
package com.example.springdemo.service;
|
||||||
|
|
||||||
|
import com.example.springdemo.dao.RolesPermissionsRepository;
|
||||||
|
import com.example.springdemo.entities.RBAC.RolesPermissions;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class RolesPermissionsServiceImpl implements RolesPermissionsService {
|
||||||
|
@Resource
|
||||||
|
private RolesPermissionsRepository rolesPermissionsRepository;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RolesPermissions AssignPermissionsToRole(RolesPermissions rolesPermissions) {
|
||||||
|
return rolesPermissionsRepository.save(rolesPermissions);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean RemovePermissionsFromRole(Long roleId, Long permissionId) {
|
||||||
|
if (this.CheckIfDeleteOrUpdateAdmin(roleId)) {
|
||||||
|
rolesPermissionsRepository.RemovePermissionsFromRole(roleId, permissionId);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean updateRolePermissions(Long roleId, Long permissionId) {
|
||||||
|
if (this.CheckIfDeleteOrUpdateAdmin(roleId)) {
|
||||||
|
rolesPermissionsRepository.updateRolePermissions(roleId, permissionId);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RolesPermissions getRolePermissionById(Long rolesPermissionsId) {
|
||||||
|
return rolesPermissionsRepository.findById(rolesPermissionsId).orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO: 查询全部权限和角色的对应关系
|
||||||
|
@Override
|
||||||
|
public Iterable<RolesPermissions> getAllRolesPermissions() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean CheckIfDeleteOrUpdateAdmin(Long roleId) {
|
||||||
|
return roleId != 1;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
package com.example.springdemo.service;
|
||||||
|
|
||||||
|
import com.example.springdemo.entities.RBAC.Roles;
|
||||||
|
import com.example.springdemo.entities.Users;
|
||||||
|
|
||||||
|
public interface RolesService {
|
||||||
|
Roles createRoles(Roles roles);
|
||||||
|
|
||||||
|
Roles updateRoles(Roles roles);
|
||||||
|
|
||||||
|
void deleteRoles(Long id);
|
||||||
|
|
||||||
|
Iterable<Roles> getAllRoles();
|
||||||
|
|
||||||
|
Roles getRolesByName(String name);
|
||||||
|
|
||||||
|
Roles getRolesById(Long id);
|
||||||
|
|
||||||
|
//Users角色管理
|
||||||
|
public void RemoveRoleFromUser(Long userId, Long roleId);
|
||||||
|
|
||||||
|
public Users AssignRoleToUser(Long userId, Long roleId);
|
||||||
|
|
||||||
|
public Users getUserRoleById(Long userId);
|
||||||
|
}
|
@ -0,0 +1,60 @@
|
|||||||
|
package com.example.springdemo.service;
|
||||||
|
|
||||||
|
import com.example.springdemo.dao.RolesRepository;
|
||||||
|
import com.example.springdemo.entities.RBAC.Roles;
|
||||||
|
import com.example.springdemo.entities.Users;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class RolesServiceImpl implements RolesService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private RolesRepository rolesRepository;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Roles createRoles(Roles roles) {
|
||||||
|
return rolesRepository.save(roles);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Roles updateRoles(Roles roles) {
|
||||||
|
return rolesRepository.save(roles);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteRoles(Long id) {
|
||||||
|
rolesRepository.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Iterable<Roles> getAllRoles() {
|
||||||
|
return rolesRepository.findAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Roles getRolesByName(String name) {
|
||||||
|
return rolesRepository.findByName(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Roles getRolesById(Long id) {
|
||||||
|
return rolesRepository.findById(id).orElse(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO: Users角色管理
|
||||||
|
@Override
|
||||||
|
public void RemoveRoleFromUser(Long userId, Long roleId) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Users AssignRoleToUser(Long userId, Long roleId) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Users getUserRoleById(Long userId) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user