/** * * Copyright (c) 2014, the Railo Company Ltd. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see <http://www.gnu.org/licenses/>. * **/ package lucee.runtime.net.ftp; import org.apache.commons.net.ftp.FTPFile; /** * */ public final class FTPConstant { /** * Field <code>TRANSFER_MODE_AUTO</code> */ public static final short TRANSFER_MODE_AUTO=0; /** * Field <code>TRANSFER_MODE_BINARY</code> */ public static final short TRANSFER_MODE_BINARY=1; /** * Field <code>TRANSFER_MODE_ASCCI</code> */ public static final short TRANSFER_MODE_ASCCI=2; /** * Field <code>PERMISSION_READ</code> */ public static final short PERMISSION_READ=4; /** * Field <code>PERMISSION_WRITE</code> */ public static final short PERMISSION_WRITE=2; /** * Field <code>PERMISSION_EXECUTE</code> */ public static final short PERMISSION_EXECUTE=1; /** * Field <code>ACCESS_WORLD</code> */ public static final short ACCESS_WORLD=1; /** * Field <code>ACCESS_GROUP</code> */ public static final short ACCESS_GROUP=10; /** * Field <code>ACCESS_USER</code> */ public static final short ACCESS_USER=100; /** * @param type * @return file type as String */ public static String getTypeAsString(int type) { if(type==FTPFile.DIRECTORY_TYPE)return "directory"; else if(type==FTPFile.SYMBOLIC_LINK_TYPE)return "link"; else if(type==FTPFile.UNKNOWN_TYPE)return "unknown"; else if(type==FTPFile.FILE_TYPE)return "file"; return "unknown"; } /** * @param file * @return permission as integer */ public static Integer getPermissionASInteger(FTPFile file) { int rtn=0; // world if(file.hasPermission(FTPFile.WORLD_ACCESS,FTPFile.READ_PERMISSION))rtn+=ACCESS_WORLD*PERMISSION_READ; if(file.hasPermission(FTPFile.WORLD_ACCESS,FTPFile.WRITE_PERMISSION))rtn+=ACCESS_WORLD*PERMISSION_WRITE; if(file.hasPermission(FTPFile.WORLD_ACCESS,FTPFile.EXECUTE_PERMISSION))rtn+=ACCESS_WORLD*PERMISSION_EXECUTE; // group if(file.hasPermission(FTPFile.GROUP_ACCESS,FTPFile.READ_PERMISSION))rtn+=ACCESS_GROUP*PERMISSION_READ; if(file.hasPermission(FTPFile.GROUP_ACCESS,FTPFile.WRITE_PERMISSION))rtn+=ACCESS_GROUP*PERMISSION_WRITE; if(file.hasPermission(FTPFile.GROUP_ACCESS,FTPFile.EXECUTE_PERMISSION))rtn+=ACCESS_GROUP*PERMISSION_EXECUTE; // user if(file.hasPermission(FTPFile.USER_ACCESS,FTPFile.READ_PERMISSION))rtn+=ACCESS_USER*PERMISSION_READ; if(file.hasPermission(FTPFile.USER_ACCESS,FTPFile.WRITE_PERMISSION))rtn+=ACCESS_USER*PERMISSION_WRITE; if(file.hasPermission(FTPFile.USER_ACCESS,FTPFile.EXECUTE_PERMISSION))rtn+=ACCESS_USER*PERMISSION_EXECUTE; return Integer.valueOf(rtn); } public static void setPermission(FTPFile file, int mode) { // world file.setPermission(FTPFile.WORLD_ACCESS, FTPFile.EXECUTE_PERMISSION, (1&mode)>0); file.setPermission(FTPFile.WORLD_ACCESS, FTPFile.WRITE_PERMISSION, (2&mode)>0); file.setPermission(FTPFile.WORLD_ACCESS, FTPFile.READ_PERMISSION, (4&mode)>0); // group file.setPermission(FTPFile.GROUP_ACCESS, FTPFile.EXECUTE_PERMISSION, (8&mode)>0); file.setPermission(FTPFile.GROUP_ACCESS, FTPFile.WRITE_PERMISSION, (16&mode)>0); file.setPermission(FTPFile.GROUP_ACCESS, FTPFile.READ_PERMISSION, (32&mode)>0); // user file.setPermission(FTPFile.USER_ACCESS, FTPFile.EXECUTE_PERMISSION, (64&mode)>0); file.setPermission(FTPFile.USER_ACCESS, FTPFile.WRITE_PERMISSION, (128&mode)>0); file.setPermission(FTPFile.USER_ACCESS, FTPFile.READ_PERMISSION, (256&mode)>0); } public static void setPermissionOld(FTPFile file, int mode) { int mu=mode/100; mode=mode-mu*100; int mg=mode/10; mode=mode-mg*10; //print.e(mu+"-"+mg+"-"+mode); // world file.setPermission(FTPFile.WORLD_ACCESS, FTPFile.READ_PERMISSION, ((PERMISSION_READ)&mode)>0); file.setPermission(FTPFile.WORLD_ACCESS, FTPFile.WRITE_PERMISSION, ((PERMISSION_WRITE)&mode)>0); file.setPermission(FTPFile.WORLD_ACCESS, FTPFile.EXECUTE_PERMISSION, ((PERMISSION_EXECUTE)&mode)>0); // group file.setPermission(FTPFile.GROUP_ACCESS, FTPFile.READ_PERMISSION, ((PERMISSION_READ)&mg)>0); file.setPermission(FTPFile.GROUP_ACCESS, FTPFile.WRITE_PERMISSION, ((PERMISSION_WRITE)&mg)>0); file.setPermission(FTPFile.GROUP_ACCESS, FTPFile.EXECUTE_PERMISSION, ((PERMISSION_EXECUTE)&mg)>0); // user file.setPermission(FTPFile.USER_ACCESS, FTPFile.READ_PERMISSION, ((PERMISSION_READ)&mu)>0); file.setPermission(FTPFile.USER_ACCESS, FTPFile.WRITE_PERMISSION, ((PERMISSION_WRITE)&mu)>0); file.setPermission(FTPFile.USER_ACCESS, FTPFile.EXECUTE_PERMISSION, ((PERMISSION_EXECUTE)&mu)>0); } }