Changeset 2035

Show
Ignore:
Timestamp:
02/19/2010 09:52:28 AM (5 months ago)
Author:
scitz0
Message:

Completes request plugin, items (2-5) from list in #180

Location:
trunk/src/plugins
Files:
4 added
1 removed
5 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/plugins/org.drftpd.commands.request/plugin.xml

    r2026 r2035  
    2929                <parameter id="Priority" value="1" /> 
    3030        </extension> 
     31        <extension plugin-id="org.drftpd.commands.request" point-id="PreHook" id="doSITE_REQDELPerm"> 
     32                <parameter id="ParentMethod" value="doSITE_REQDELETE" /> 
     33                <parameter id="HookClass" value="org.drftpd.commands.prehook.permissions.PermissionPreHook" /> 
     34                <parameter id="HookMethod" value="doPermissionCheck" /> 
     35                <parameter id="Priority" value="1" /> 
     36        </extension> 
     37        <extension plugin-id="org.drftpd.commands.request" point-id="PreHook" id="doSITE_REQUESTSPerm"> 
     38                <parameter id="ParentMethod" value="doSITE_REQUESTS" /> 
     39                <parameter id="HookClass" value="org.drftpd.commands.prehook.permissions.PermissionPreHook" /> 
     40                <parameter id="HookMethod" value="doPermissionCheck" /> 
     41                <parameter id="Priority" value="1" /> 
     42        </extension> 
     43        <extension plugin-id="org.drftpd.commands.request" point-id="PreHook" id="RequestWklyAllotmentPreCheck"> 
     44                <parameter id="ParentMethod" value="doSITE_REQUEST" /> 
     45                <parameter id="HookClass" value="org.drftpd.commands.request.RequestPreHook" /> 
     46                <parameter id="HookMethod" value="doWklyAllotmentPreCheck" /> 
     47                <parameter id="Priority" value="10" /> 
     48        </extension> 
     49        <extension plugin-id="org.drftpd.commands.request" point-id="PostHook" id="REQUESTIncrement"> 
     50                <parameter id="ParentMethod" value="doSITE_REQUEST" /> 
     51                <parameter id="HookClass" value="org.drftpd.commands.request.RequestPostHook" /> 
     52                <parameter id="HookMethod" value="doREQUESTIncrement" /> 
     53                <parameter id="Priority" value="10" /> 
     54        </extension> 
     55        <extension plugin-id="org.drftpd.commands.request" point-id="PostHook" id="REQFILLEDIncrement"> 
     56                <parameter id="ParentMethod" value="doSITE_REQFILLED" /> 
     57                <parameter id="HookClass" value="org.drftpd.commands.request.RequestPostHook" /> 
     58                <parameter id="HookMethod" value="doREQFILLEDIncrement" /> 
     59                <parameter id="Priority" value="10" /> 
     60        </extension> 
     61        <extension plugin-id="org.drftpd.commands.request" point-id="PostHook" id="doWklyAllotmentDecrease"> 
     62                <parameter id="ParentMethod" value="doSITE_REQDELETE" /> 
     63                <parameter id="HookClass" value="org.drftpd.commands.request.RequestPostHook" /> 
     64                <parameter id="HookMethod" value="doWklyAllotmentDecrease" /> 
     65                <parameter id="Priority" value="10" /> 
     66        </extension> 
     67        <extension plugin-id="master" point-id="PostUserResetHook" id="RequestResetWklyAllotment"> 
     68                <parameter id="Class" value="org.drftpd.commands.request.RequestUserResetHook"/> 
     69        </extension> 
    3170</plugin> 
  • trunk/src/plugins/org.drftpd.commands.request/resources/conf/ftpcommands.conf.dist

    r2014 r2035  
    2222method doSITE_REQUESTS 
    2323perms * 
    24 request.dirpath /requests 
    2524help List unfilled requests 
    2625help.specific ${command} 
    2726} 
    2827 
    29 SITE REQDELETE { 
     28SITE REQDEL { 
    3029plugin org.drftpd.commands.request 
    3130class Request 
     
    3635 
    3736# you can only delete your own without deleteOthers 
    38 deleteOthers =siteop 
     37request.deleteOthers =siteop 
    3938} 
  • trunk/src/plugins/org.drftpd.commands.request/src/org/drftpd/commands/request/Request.java

    r2016 r2035  
    2323 
    2424import org.apache.log4j.Logger; 
     25import org.bushe.swing.event.annotation.AnnotationProcessor; 
     26import org.bushe.swing.event.annotation.EventSubscriber; 
    2527import org.drftpd.GlobalContext; 
    2628import org.drftpd.commandmanager.CommandInterface; 
     
    3032import org.drftpd.commandmanager.StandardCommandManager; 
    3133import org.drftpd.dynamicdata.Key; 
     34import org.drftpd.event.ReloadEvent; 
    3235import org.drftpd.event.RequestEvent; 
    3336import org.drftpd.exceptions.FileExistsException; 
     
    4649        public static final Key<Integer> REQUESTSFILLED = new Key<Integer>(Request.class,       "requestsFilled"); 
    4750        public static final Key<Integer> REQUESTS = new Key<Integer>(Request.class, "requests"); 
     51        public static final Key<Integer> WEEKREQS = new Key<Integer>(Request.class, "weekReqs"); 
    4852         
    4953        private static final Logger logger = Logger.getLogger(Request.class); 
     
    6064        public void initialize(String method, String pluginName, StandardCommandManager cManager) { 
    6165        super.initialize(method, pluginName, cManager); 
     66 
     67                // Subscribe to events 
     68                AnnotationProcessor.process(this); 
     69                 
    6270        _bundle = cManager.getResourceBundle(); 
    6371        _keyPrefix = this.getClass().getName()+"."; 
     
    6977 
    7078        /** 
    71          * Reads 'conf/plugins/requests.conf' 
     79         * Reads 'conf/plugins/request.conf' 
    7280         */ 
    7381        private void readConfig() { 
    74                 Properties props = GlobalContext.getGlobalContext().getPluginsConfig().getPropertiesForPlugin("requests"); 
     82                Properties props = GlobalContext.getGlobalContext().getPluginsConfig().getPropertiesForPlugin("request"); 
    7583                 
    7684                _requestPath = props.getProperty("request.dirpath", "/requests/"); 
     
    100108        /** 
    101109         * If the commands has a 'request.dirpath' set we will use this one 
    102          * otherwise we will use the fallback/default path set in 'conf/plugins/requests.conf' 
     110         * otherwise we will use the fallback/default path set in 'conf/plugins/request.conf' 
    103111         *  
    104112         * This allows multiple request dirs. 
     
    154162                                        GlobalContext.getEventService().publishAsync(new RequestEvent("reqfilled", user, requestDir, session.getUserNull(parser.getUser()), requestName)); 
    155163 
    156                                         // TODO PostHook to increment REQFILLED 
    157  
    158164                                        if (session instanceof BaseFtpConnection) { 
    159165                                                return new CommandResponse(200, session.jprintf(_bundle, _keyPrefix+"reqfilled.success", env, request.getUser())); 
     
    179185                User user = session.getUserNull(request.getUser()); 
    180186                String requestName = request.getArgument().trim(); 
    181                 String createdDirName = _requestPrefix + user.getName() +       "-" + requestName; 
     187                String createdDirName = _requestPrefix + user.getName() + "-" + requestName; 
    182188                DirectoryHandle requestDir = getRequestDirectory(request); 
    183189                 
     
    196202                } 
    197203                 
    198                 // TODO Post Hook to increment request number 
    199                  
    200204                GlobalContext.getEventService().publishAsync(new RequestEvent("request", requestDir, user, requestName)); 
    201                  
     205 
    202206                if (session instanceof BaseFtpConnection) { 
    203207                        return new CommandResponse(257, session.jprintf(_bundle, _keyPrefix+"request.success", env, user.getName())); 
    204208                } 
     209                 
    205210                // Return ok status to IRC so we know the command was successful 
    206211                return StandardCommandManager.genericResponse("RESPONSE_200_COMMAND_OK"); 
     
    287292                                                GlobalContext.getEventService().publishAsync(new RequestEvent("reqdel", user, requestDir, session.getUserNull(parser.getUser()), requestName)); 
    288293                                                 
    289                                                 // TODO decrement the weekly request amount? (not sure if wanted, make configurable?) 
    290                                                  
    291294                                                break; 
    292295                                        } else { 
    293                                                 response.addComment(session.jprintf(_bundle, _keyPrefix+"reqdel.notowner", env, request.getUser())); 
    294                                                 break; 
     296                                                return new CommandResponse(550, session.jprintf(_bundle, _keyPrefix+"reqdel.notowner", env, request.getUser())); 
    295297                                        } 
    296298                                } 
     
    298300                         
    299301                        if (requestNotFound) { 
    300                                 response.addComment(session.jprintf(_bundle, _keyPrefix+"reqdel.notfound", env, request.getUser())); 
     302                                return new CommandResponse(550, session.jprintf(_bundle, _keyPrefix+"reqdel.notfound", env, request.getUser())); 
    301303                        } 
    302304                         
    303305                } catch (FileNotFoundException e) { 
    304                         response.addComment(session.jprintf(_bundle, _keyPrefix+"reqdel.root.notfound", env, request.getUser())); 
     306                        return new CommandResponse(550, session.jprintf(_bundle, _keyPrefix+"reqdel.root.notfound", env, request.getUser())); 
    305307                } 
    306308                 
     
    333335        } 
    334336 
     337        @EventSubscriber 
     338        public void onReloadEvent(ReloadEvent event) { 
     339                readConfig(); 
     340        } 
     341 
    335342} 
  • trunk/src/plugins/org.drftpd.commands.usermanagement/src/org/drftpd/commands/usermanagement/UserManagementHandler.ftp.properties

    r2031 r2035  
    3636Total uploaded: ${uploaded,-14} Total downloaded: ${downloaded}\n\ 
    3737Times nuked: ${org.drftpd.commands.nuke.Nuke@nuked,-17} Bytes nuked: ${org.drftpd.commands.nuke.Nuke@nukedBytes}\n\ 
     38Requests: ${org.drftpd.commands.request.Request@requests,-20} Filled requests: ${org.drftpd.commands.request.Request@requestsFilled}\n\ 
     39Requests this week: ${org.drftpd.commands.request.Request@weekReqs}\n\ 
    3840Primary group: ${group,-15} Banned: ${isbanned}\n\ 
    3941Extra groups: ${groups,-16} Banned Until: ${org.drftpd.commands.UserManagement@ban_time}\n\ 
  • trunk/src/plugins/org.drftpd.plugins.sitebot.announce.request/resources/conf/plugins/irc/irccommands.conf.dist

    r2016 r2035  
    3535class Request 
    3636method doSITE_REQDELETE 
    37 perms * 
     37perms =request 
    3838help Deletes a request 
    3939help.specific ${command} <nameofrequest> 
     
    4242 
    4343# you can only delete your own without deleteOthers 
    44 deleteOthers =siteop 
     44request.deleteOthers =siteop 
    4545}