Browse Source

A simple function to check permission

feature/user_mgmt
LO Kam Tao Leo 3 years ago
parent
commit
912bb7b178
  1. 46
      src/main/java/org/leolo/nrapi/util/RoleUtil.java

46
src/main/java/org/leolo/nrapi/util/RoleUtil.java

@ -0,0 +1,46 @@
package org.leolo.nrapi.util;
import org.leolo.nrapi.manager.DatabaseManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class RoleUtil {
private static Logger log = LoggerFactory.getLogger(RoleUtil.class);
public static boolean hasPermission(long userId, String prem){
try(
Connection conn = DatabaseManager.getInstance().getConnection();
PreparedStatement pstmt = conn.prepareStatement(
"SELECT 1 FROM user_perm WHERE user_id = ? AND perm_name = ? " +
"UNION ALL SELECT 1 FROM user_groups ug JOIN group_perm gp on ug.group_id = gp.group_id " +
"WHERE ug.user_id = ? and gp.perm_name = ?"
)
){
pstmt.setLong(1, userId);
pstmt.setString(2, prem);
pstmt.setLong(3, userId);
pstmt.setString(4, prem);
try(ResultSet rs = pstmt.executeQuery()){
return rs.next();
}
}catch (SQLException e){
log.error(e.getMessage(),e);
}
return false;
}
public static boolean hasPermission(String permission){
long userId = HttpReqRespUtils.getUserId();
if(userId!=-1){
return hasPermission(userId, permission);
}
return false;
}
}
Loading…
Cancel
Save