01: /*
02: * This file is part of DrFTPD, Distributed FTP Daemon.
03: *
04: * DrFTPD is free software; you can redistribute it and/or modify
05: * it under the terms of the GNU General Public License as published by
06: * the Free Software Foundation; either version 2 of the License, or
07: * (at your option) any later version.
08: *
09: * DrFTPD is distributed in the hope that it will be useful,
10: * but WITHOUT ANY WARRANTY; without even the implied warranty of
11: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12: * GNU General Public License for more details.
13: *
14: * You should have received a copy of the GNU General Public License
15: * along with DrFTPD; if not, write to the Free Software
16: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17: */
18: package org.drftpd.slaveselection.filter;
19:
20: import java.net.InetAddress;
21: import java.util.ArrayList;
22: import java.util.Properties;
23:
24: import net.sf.drftpd.NoAvailableSlaveException;
25: import net.sf.drftpd.ObjectNotFoundException;
26: import net.sf.drftpd.master.config.FtpConfig;
27:
28: import org.drftpd.PropertyHelper;
29: import org.drftpd.master.RemoteSlave;
30: import org.drftpd.permissions.Permission;
31: import org.drftpd.remotefile.LinkedRemoteFileInterface;
32: import org.drftpd.usermanager.User;
33:
34: import com.Ostermiller.util.StringTokenizer;
35:
36: /**
37: * @author mog
38: * @version $Id: UserFilter.java 879 2004-12-29 03:39:22Z mog $
39: */
40: public class UserFilter extends Filter {
41: private Permission _perm;
42: private ArrayList<MatchdirFilter.AssignSlave> _assigns;
43:
44: public UserFilter(FilterChain fc, int i, Properties p)
45: throws ObjectNotFoundException {
46: _perm = new Permission(FtpConfig.makeUsers(new StringTokenizer(
47: PropertyHelper.getProperty(p, i + ".perm"))));
48: _assigns = MatchdirFilter.parseAssign(PropertyHelper
49: .getProperty(p, i + ".assign"), fc.getGlobalContext()
50: .getSlaveManager());
51: }
52:
53: public void process(ScoreChart scorechart, User user,
54: InetAddress peer, char direction,
55: LinkedRemoteFileInterface dir, RemoteSlave sourceSlave)
56: throws NoAvailableSlaveException {
57: MatchdirFilter.doAssign(_assigns, scorechart);
58: }
59: }
|