/** * Copyright © 2012-2014 JeeSite All rights reserved. */ package com.nis.web.controller; import javax.servlet.ServletConfig; import javax.servlet.http.HttpServletRequest; import com.ckfinder.connector.configuration.Configuration; import com.ckfinder.connector.data.AccessControlLevel; import com.ckfinder.connector.utils.AccessControlUtil; import com.nis.util.Configurations; import com.nis.util.Constants; import com.nis.util.FileUtils; import com.nis.util.StringUtils; import com.nis.web.security.Servlets; import com.nis.web.security.SystemAuthorizingRealm.Principal; import com.nis.web.security.UserUtils; /** * CKFinder配置 * @author ThinkGem * @version 2014-06-25 */ public class CKFinderConfig extends Configuration { public CKFinderConfig(ServletConfig servletConfig) { super(servletConfig); } @Override protected Configuration createConfigurationInstance() { Principal principal = (Principal) UserUtils.getPrincipal(); if (principal == null){ return new CKFinderConfig(this.servletConf); } boolean isView = true;//UserUtils.getSubject().isPermitted("cms:ckfinder:view"); boolean isUpload = true;//UserUtils.getSubject().isPermitted("cms:ckfinder:upload"); boolean isEdit = true;//UserUtils.getSubject().isPermitted("cms:ckfinder:edit"); AccessControlLevel alc = this.getAccessConrolLevels().get(0); alc.setFolderView(isView); alc.setFolderCreate(isEdit); alc.setFolderRename(isEdit); alc.setFolderDelete(isEdit); alc.setFileView(isView); alc.setFileUpload(isUpload); alc.setFileRename(isEdit); alc.setFileDelete(isEdit); // for (AccessControlLevel a : this.getAccessConrolLevels()){ // System.out.println(a.getRole()+", "+a.getResourceType()+", "+a.getFolder() // +", "+a.isFolderView()+", "+a.isFolderCreate()+", "+a.isFolderRename()+", "+a.isFolderDelete() // +", "+a.isFileView()+", "+a.isFileUpload()+", "+a.isFileRename()+", "+a.isFileDelete()); // } AccessControlUtil.getInstance(this).loadACLConfig(); try { // Principal principal = (Principal)SecurityUtils.getSubject().getPrincipal(); // this.baseURL = ServletContextFactory.getServletContext().getContextPath()+"/userfiles/"+principal+"/"; this.baseURL = FileUtils.path(Servlets.getRequest().getContextPath() + "/" + Configurations.getStringProperty("userfiles.basedir","") + Constants.USERFILES_BASE_URL + principal + "/"); this.baseDir = FileUtils.path(StringUtils.getUserfilesBaseDir() + Constants.USERFILES_BASE_URL + principal + "/"); } catch (Exception e) { throw new RuntimeException(e); } return new CKFinderConfig(this.servletConf); } @Override public boolean checkAuthentication(final HttpServletRequest request) { return UserUtils.getPrincipal()!=null; } }