/*     */ package com.picc.grab.common.shiro;
/*     */ 
/*     */ import com.picc.grab.entity.Menu;
/*     */ import com.picc.grab.entity.ShiroUser;
/*     */ import java.util.LinkedHashMap;
/*     */ import java.util.List;
/*     */ import java.util.Map;
/*     */ import org.apache.commons.collections.CollectionUtils;
/*     */ import org.apache.commons.lang3.StringUtils;
/*     */ import org.apache.shiro.SecurityUtils;
/*     */ import org.apache.shiro.subject.Subject;
/*     */ import org.springframework.stereotype.Component;
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ @Component
/*     */ public class ShiroExt
/*     */ {
/*     */   private static final String NAMES_DELIMETER = ",";
/*     */   
/*     */   protected static Subject getSubject() {
/*  41 */     return SecurityUtils.getSubject();
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public ShiroUser getUser() {
/*  50 */     if (isGuest()) {
/*  51 */       return null;
/*     */     }
/*  53 */     return (ShiroUser)getSubject().getPrincipals().getPrimaryPrincipal();
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public LinkedHashMap<String, Menu> getLevelOneMenu() {
/*  63 */     if (isGuest()) {
/*  64 */       return null;
/*     */     }
/*  66 */     Map<String, LinkedHashMap<String, Menu>> map = ((ShiroUser)getSubject().getPrincipals().getPrimaryPrincipal()).getMenuMap();
/*  67 */     if (map == null) {
/*  68 */       return null;
/*     */     }
/*  70 */     return map.get("levelOne");
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public LinkedHashMap<String, Menu> getLevelTwoMenu() {
/*  80 */     if (isGuest()) {
/*  81 */       return null;
/*     */     }
/*  83 */     Map<String, LinkedHashMap<String, Menu>> map = ((ShiroUser)getSubject().getPrincipals().getPrimaryPrincipal()).getMenuMap();
/*  84 */     if (map == null) {
/*  85 */       return null;
/*     */     }
/*  87 */     return map.get("levelTwo");
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public boolean hasRole(String roleName) {
/*  98 */     return (getSubject() != null && roleName != null && roleName
/*  99 */       .length() > 0 && getSubject().hasRole(roleName));
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public boolean lacksRole(String roleName) {
/* 109 */     return !hasRole(roleName);
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public boolean hasAnyRoles(String roleNames) {
/* 119 */     boolean hasAnyRole = false;
/* 120 */     Subject subject = getSubject();
/* 121 */     if (subject != null && roleNames != null && roleNames.length() > 0) {
/* 122 */       for (String role : roleNames.split(",")) {
/* 123 */         if (subject.hasRole(role.trim())) {
/* 124 */           hasAnyRole = true;
/*     */           break;
/*     */         } 
/*     */       } 
/*     */     }
/* 129 */     return hasAnyRole;
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public boolean hasAllRoles(String roleNames) {
/* 139 */     boolean hasAllRole = true;
/* 140 */     Subject subject = getSubject();
/* 141 */     if (subject != null && roleNames != null && roleNames.length() > 0) {
/* 142 */       for (String role : roleNames.split(",")) {
/* 143 */         if (!subject.hasRole(role.trim())) {
/* 144 */           hasAllRole = false;
/*     */           break;
/*     */         } 
/*     */       } 
/*     */     }
/* 149 */     return hasAllRole;
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public boolean hasSystemManage() {
/* 158 */     boolean hasSystemManage = false;
/* 159 */     ShiroUser shiroUser = getUser();
/* 160 */     if (shiroUser != null && CollectionUtils.isNotEmpty(shiroUser.getUgIdList())) {
/* 161 */       List<String> ugIdList = shiroUser.getUgIdList();
/* 162 */       for (String ugId : ugIdList) {
/* 163 */         if (StringUtils.equals("754878cf8c2c449abc1568806aba8516", ugId)) {
/* 164 */           hasSystemManage = true;
/*     */           break;
/*     */         } 
/*     */       } 
/*     */     } 
/* 169 */     return hasSystemManage;
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public boolean hasPermission(String permission) {
/* 179 */     return (getSubject() != null && permission != null && permission
/* 180 */       .length() > 0 && 
/* 181 */       getSubject().isPermitted(permission));
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public boolean lacksPermission(String permission) {
/* 191 */     return !hasPermission(permission);
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public boolean authenticated() {
/* 200 */     return (getSubject() != null && getSubject().isAuthenticated());
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public boolean notAuthenticated() {
/* 209 */     return !authenticated();
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public boolean isUser() {
/* 218 */     return (getSubject() != null && getSubject().getPrincipal() != null);
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public boolean isGuest() {
/* 227 */     return !isUser();
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public String principal() {
/* 236 */     if (getSubject() != null) {
/* 237 */       Object principal = getSubject().getPrincipal();
/* 238 */       return principal.toString();
/*     */     } 
/* 240 */     return "";
/*     */   }
/*     */   
/*     */   public static void main(String[] args) {}
/*     */ }


/* Location:              C:\Users\Administrator\Desktop\ROOT\WEB-INF\classes\!\com\picc\grab\common\shiro\ShiroExt.class
 * Java compiler version: 8 (52.0)
 * JD-Core Version:       1.1.3
 */