001/** 002 * 003 * Copyright (c) 2014, the Railo Company Ltd. All rights reserved. 004 * 005 * This library is free software; you can redistribute it and/or 006 * modify it under the terms of the GNU Lesser General Public 007 * License as published by the Free Software Foundation; either 008 * version 2.1 of the License, or (at your option) any later version. 009 * 010 * This library is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 013 * Lesser General Public License for more details. 014 * 015 * You should have received a copy of the GNU Lesser General Public 016 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 017 * 018 **/ 019package lucee.runtime.net.ftp; 020 021import org.apache.commons.net.ftp.FTPFile; 022 023 024/** 025 * 026 */ 027public final class FTPConstant { 028 029 030 /** 031 * Field <code>TRANSFER_MODE_AUTO</code> 032 */ 033 public static final short TRANSFER_MODE_AUTO=0; 034 /** 035 * Field <code>TRANSFER_MODE_BINARY</code> 036 */ 037 public static final short TRANSFER_MODE_BINARY=1; 038 /** 039 * Field <code>TRANSFER_MODE_ASCCI</code> 040 */ 041 public static final short TRANSFER_MODE_ASCCI=2; 042 043 /** 044 * Field <code>PERMISSION_READ</code> 045 */ 046 public static final short PERMISSION_READ=4; 047 /** 048 * Field <code>PERMISSION_WRITE</code> 049 */ 050 public static final short PERMISSION_WRITE=2; 051 052 /** 053 * Field <code>PERMISSION_EXECUTE</code> 054 */ 055 public static final short PERMISSION_EXECUTE=1; 056 057 /** 058 * Field <code>ACCESS_WORLD</code> 059 */ 060 public static final short ACCESS_WORLD=1; 061 /** 062 * Field <code>ACCESS_GROUP</code> 063 */ 064 public static final short ACCESS_GROUP=10; 065 /** 066 * Field <code>ACCESS_USER</code> 067 */ 068 public static final short ACCESS_USER=100; 069 070 071 072 073 /** 074 * @param type 075 * @return file type as String 076 */ 077 public static String getTypeAsString(int type) { 078 if(type==FTPFile.DIRECTORY_TYPE)return "directory"; 079 else if(type==FTPFile.SYMBOLIC_LINK_TYPE)return "link"; 080 else if(type==FTPFile.UNKNOWN_TYPE)return "unknown"; 081 else if(type==FTPFile.FILE_TYPE)return "file"; 082 083 return "unknown"; 084 } 085 086 /** 087 * @param file 088 * @return permission as integer 089 */ 090 public static Integer getPermissionASInteger(FTPFile file) { 091 int rtn=0; 092 // world 093 if(file.hasPermission(FTPFile.WORLD_ACCESS,FTPFile.READ_PERMISSION))rtn+=ACCESS_WORLD*PERMISSION_READ; 094 if(file.hasPermission(FTPFile.WORLD_ACCESS,FTPFile.WRITE_PERMISSION))rtn+=ACCESS_WORLD*PERMISSION_WRITE; 095 if(file.hasPermission(FTPFile.WORLD_ACCESS,FTPFile.EXECUTE_PERMISSION))rtn+=ACCESS_WORLD*PERMISSION_EXECUTE; 096 097 // group 098 if(file.hasPermission(FTPFile.GROUP_ACCESS,FTPFile.READ_PERMISSION))rtn+=ACCESS_GROUP*PERMISSION_READ; 099 if(file.hasPermission(FTPFile.GROUP_ACCESS,FTPFile.WRITE_PERMISSION))rtn+=ACCESS_GROUP*PERMISSION_WRITE; 100 if(file.hasPermission(FTPFile.GROUP_ACCESS,FTPFile.EXECUTE_PERMISSION))rtn+=ACCESS_GROUP*PERMISSION_EXECUTE; 101 102 // user 103 if(file.hasPermission(FTPFile.USER_ACCESS,FTPFile.READ_PERMISSION))rtn+=ACCESS_USER*PERMISSION_READ; 104 if(file.hasPermission(FTPFile.USER_ACCESS,FTPFile.WRITE_PERMISSION))rtn+=ACCESS_USER*PERMISSION_WRITE; 105 if(file.hasPermission(FTPFile.USER_ACCESS,FTPFile.EXECUTE_PERMISSION))rtn+=ACCESS_USER*PERMISSION_EXECUTE; 106 107 return Integer.valueOf(rtn); 108 } 109 public static void setPermission(FTPFile file, int mode) { 110 111 // world 112 file.setPermission(FTPFile.WORLD_ACCESS, FTPFile.EXECUTE_PERMISSION, (1&mode)>0); 113 file.setPermission(FTPFile.WORLD_ACCESS, FTPFile.WRITE_PERMISSION, (2&mode)>0); 114 file.setPermission(FTPFile.WORLD_ACCESS, FTPFile.READ_PERMISSION, (4&mode)>0); 115 116 // group 117 file.setPermission(FTPFile.GROUP_ACCESS, FTPFile.EXECUTE_PERMISSION, (8&mode)>0); 118 file.setPermission(FTPFile.GROUP_ACCESS, FTPFile.WRITE_PERMISSION, (16&mode)>0); 119 file.setPermission(FTPFile.GROUP_ACCESS, FTPFile.READ_PERMISSION, (32&mode)>0); 120 121 // user 122 file.setPermission(FTPFile.USER_ACCESS, FTPFile.EXECUTE_PERMISSION, (64&mode)>0); 123 file.setPermission(FTPFile.USER_ACCESS, FTPFile.WRITE_PERMISSION, (128&mode)>0); 124 file.setPermission(FTPFile.USER_ACCESS, FTPFile.READ_PERMISSION, (256&mode)>0); 125 } 126 127 public static void setPermissionOld(FTPFile file, int mode) { 128 int mu=mode/100; 129 mode=mode-mu*100; 130 131 int mg=mode/10; 132 mode=mode-mg*10; 133 134 //print.e(mu+"-"+mg+"-"+mode); 135 136 // world 137 file.setPermission(FTPFile.WORLD_ACCESS, FTPFile.READ_PERMISSION, ((PERMISSION_READ)&mode)>0); 138 file.setPermission(FTPFile.WORLD_ACCESS, FTPFile.WRITE_PERMISSION, ((PERMISSION_WRITE)&mode)>0); 139 file.setPermission(FTPFile.WORLD_ACCESS, FTPFile.EXECUTE_PERMISSION, ((PERMISSION_EXECUTE)&mode)>0); 140 141 // group 142 file.setPermission(FTPFile.GROUP_ACCESS, FTPFile.READ_PERMISSION, ((PERMISSION_READ)&mg)>0); 143 file.setPermission(FTPFile.GROUP_ACCESS, FTPFile.WRITE_PERMISSION, ((PERMISSION_WRITE)&mg)>0); 144 file.setPermission(FTPFile.GROUP_ACCESS, FTPFile.EXECUTE_PERMISSION, ((PERMISSION_EXECUTE)&mg)>0); 145 146 // user 147 file.setPermission(FTPFile.USER_ACCESS, FTPFile.READ_PERMISSION, ((PERMISSION_READ)&mu)>0); 148 file.setPermission(FTPFile.USER_ACCESS, FTPFile.WRITE_PERMISSION, ((PERMISSION_WRITE)&mu)>0); 149 file.setPermission(FTPFile.USER_ACCESS, FTPFile.EXECUTE_PERMISSION, ((PERMISSION_EXECUTE)&mu)>0); 150 } 151}