¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the dreamlu.net developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: Chill åºéª (smallchill@163.com) |
| | | */ |
| | | package org.springblade.core.secure.auth; |
| | | |
| | | import org.springblade.core.secure.BladeUser; |
| | | import org.springblade.core.secure.handler.IPermissionHandler; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.core.tool.constant.RoleConstant; |
| | | import org.springblade.core.tool.utils.*; |
| | | |
| | | /** |
| | | * æé夿 |
| | | * |
| | | * @author Chill |
| | | */ |
| | | public class AuthFun { |
| | | |
| | | /** |
| | | * æéæ ¡éªå¤çå¨ |
| | | */ |
| | | private static IPermissionHandler permissionHandler; |
| | | |
| | | private static IPermissionHandler getPermissionHandler() { |
| | | if (permissionHandler == null) { |
| | | permissionHandler = SpringUtil.getBean(IPermissionHandler.class); |
| | | } |
| | | return permissionHandler; |
| | | } |
| | | |
| | | /** |
| | | * 夿è§è²æ¯å¦å
·ææ¥å£æé |
| | | * |
| | | * @return {boolean} |
| | | */ |
| | | public boolean permissionAll() { |
| | | return getPermissionHandler().permissionAll(); |
| | | } |
| | | |
| | | /** |
| | | * 夿è§è²æ¯å¦å
·ææ¥å£æé |
| | | * |
| | | * @param permission æéç¼å· |
| | | * @return {boolean} |
| | | */ |
| | | public boolean hasPermission(String permission) { |
| | | return getPermissionHandler().hasPermission(permission); |
| | | } |
| | | |
| | | /** |
| | | * æ¾è¡ææè¯·æ± |
| | | * |
| | | * @return {boolean} |
| | | */ |
| | | public boolean permitAll() { |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | | * åªæè¶
管è§è²æå¯è®¿é® |
| | | * |
| | | * @return {boolean} |
| | | */ |
| | | public boolean denyAll() { |
| | | return hasRole(RoleConstant.ADMIN); |
| | | } |
| | | |
| | | /** |
| | | * æ¯å¦å·²ææ |
| | | * |
| | | * @return {boolean} |
| | | */ |
| | | public boolean hasAuth() { |
| | | return Func.isNotEmpty(AuthUtil.getUser()); |
| | | } |
| | | |
| | | /** |
| | | * æ¯å¦ææ¶é´ææ |
| | | * |
| | | * @param start å¼å§æ¶é´ |
| | | * @param end ç»ææ¶é´ |
| | | * @return {boolean} |
| | | */ |
| | | public boolean hasTimeAuth(Integer start, Integer end) { |
| | | Integer hour = DateUtil.hour(); |
| | | return hour >= start && hour <= end; |
| | | } |
| | | |
| | | /** |
| | | * 夿æ¯å¦æè¯¥è§è²æé |
| | | * |
| | | * @param role åè§è² |
| | | * @return {boolean} |
| | | */ |
| | | public boolean hasRole(String role) { |
| | | return hasAnyRole(role); |
| | | } |
| | | |
| | | /** |
| | | * 夿æ¯å¦å
·æææè§è²æé |
| | | * |
| | | * @param role è§è²éå |
| | | * @return {boolean} |
| | | */ |
| | | public boolean hasAllRole(String... role) { |
| | | for (String r : role) { |
| | | if (!hasRole(r)) { |
| | | return false; |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | | * 夿æ¯å¦æè¯¥è§è²æé |
| | | * |
| | | * @param role è§è²éå |
| | | * @return {boolean} |
| | | */ |
| | | public boolean hasAnyRole(String... role) { |
| | | BladeUser user = AuthUtil.getUser(); |
| | | if (user == null) { |
| | | return false; |
| | | } |
| | | String userRole = user.getRoleName(); |
| | | if (StringUtil.isBlank(userRole)) { |
| | | return false; |
| | | } |
| | | String[] roles = Func.toStrArray(userRole); |
| | | for (String r : role) { |
| | | if (CollectionUtil.contains(roles, r)) { |
| | | return true; |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | } |