52 lines
1.9 KiB
Java
52 lines
1.9 KiB
Java
package com.iconplus.smartproc.repository;
|
|
|
|
import com.iconplus.smartproc.model.entity.Permission;
|
|
import com.iconplus.smartproc.model.projection.MenusPermissionView;
|
|
import com.iconplus.smartproc.model.projection.PermissionView;
|
|
import org.springframework.data.jpa.repository.JpaRepository;
|
|
import org.springframework.data.jpa.repository.Query;
|
|
import org.springframework.stereotype.Repository;
|
|
|
|
import java.util.List;
|
|
import java.util.Optional;
|
|
|
|
@Repository
|
|
public interface PermissionRepository extends JpaRepository<Permission, Long> {
|
|
|
|
@Query(value = "SELECT m.parentId as parentId, " +
|
|
"p.menuId as menuId, " +
|
|
"m.nama as nama, " +
|
|
"p.canView as canView, " +
|
|
"p.canCreate as canCreate, " +
|
|
"p.canUpdate as canUpdate, " +
|
|
"p.canDelete as canDelete, " +
|
|
"p.canRead as canRead " +
|
|
"FROM Permission p " +
|
|
"JOIN Menus m ON m.id = p.menuId " +
|
|
"WHERE p.isDelete = false " +
|
|
"AND m.isDelete = false " +
|
|
"AND p.roleId = :roleId")
|
|
List<PermissionView> getAllPermissionsByRoleId(Long roleId);
|
|
|
|
Optional<Permission> findByRoleIdAndMenuIdAndIsDeleteFalse(Long roleId, Long menuId);
|
|
|
|
@Query(value = "SELECT m.id as id, " +
|
|
"m.nama as nama, " +
|
|
"m.parentId as parentId, " +
|
|
"m.urutan as urutan, " +
|
|
"m.icon as icon, " +
|
|
"m.link as link, " +
|
|
"p.canView as canView, " +
|
|
"p.canRead as canRead, " +
|
|
"p.canCreate as canCreate, " +
|
|
"p.canUpdate as canUpdate, " +
|
|
"p.canDelete as canDelete " +
|
|
"FROM Permission p " +
|
|
"JOIN Menus m ON m.id = p.menuId " +
|
|
"WHERE m.isDelete = false " +
|
|
"AND p.isDelete = false " +
|
|
"AND p.roleId = :roleId " +
|
|
"ORDER BY m.parentId, m.urutan")
|
|
List<MenusPermissionView> getListMenusPermission(Long roleId);
|
|
}
|