/** * Copyright (c) 2015-2017, Chill Zhuang 庄骞 (smallchill@163.com). *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *

* http://www.apache.org/licenses/LICENSE-2.0 *

* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.dsh.guns.config; import com.dsh.guns.core.support.HttpKit; import com.dsh.guns.modular.system.model.User; import com.dsh.guns.modular.system.util.CacheUtil; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.util.List; public class UserExt { private static final String NAMES_DELIMETER = ","; /** * 获取当前 Subject * * @return Subject */ public static User getUser() { HttpServletRequest request = HttpKit.getRequest(); HttpSession session = request.getSession(); Object obj = session.getAttribute("user"); if(null == obj){ return null; } User user = (User) obj; return user; } public static Integer getLanguage(){ HttpServletRequest request = HttpKit.getRequest(); HttpSession session = request.getSession(); Object obj = session.getAttribute("language"); if(null == obj){ return null; } return (Integer)obj; } /** * 验证当前用户是否拥有指定权限,使用时与lacksPermission 搭配使用 * * @param permission 权限名 * @return 拥有权限:true,否则false */ public boolean hasPermission(String permission) { if(getUser() != null && permission != null && permission.length() > 0){ User user = getUser(); List menuNodes = CacheUtil.menus.get(user.getAccount()); return menuNodes.contains(permission); } return false; } /** * 与hasPermission标签逻辑相反,当前用户没有制定权限时,验证通过。 * * @param permission 权限名 * @return 拥有权限:true,否则false */ public boolean lacksPermission(String permission) { return !hasPermission(permission); } }