1 changed files with 46 additions and 0 deletions
@ -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…
Reference in new issue