Bancheck at wrong place in SystemHandler.Class
Posted: 31 Jul 2007, 07:23
See this topic
I did some research and it appears that the method 'isBanned()' is located in the method 'handleLoginRequest()'.
The problem is that when I use a (AS) custom-login handler the server first checks if the given inlogname is banned, before it dispatches the loginrequest to my custom loginprocedure.
The downside is that it checks the loginname against the banlist, ( at least in my case ), and that's not the same as the username, the name that other users see in the playerlists.
As a result, it's possible that users cannot login because their loginname is in the banlist, while they weren't banned by their nickname.
If the bancheck is moved to 'SmartFoxServer.canLogin', it would make more sense, because most of the validation is done there anyway.
ps: I think it would made better sense if the check about whether the zone is full or not should also be placed in the SmartFoxServer.canLogin method.
That way most validation is placed in one location instead of everywhere throughout the classes some parts of validation, don't you agree ?
I did some research and it appears that the method 'isBanned()' is located in the method 'handleLoginRequest()'.
The problem is that when I use a (AS) custom-login handler the server first checks if the given inlogname is banned, before it dispatches the loginrequest to my custom loginprocedure.
The downside is that it checks the loginname against the banlist, ( at least in my case ), and that's not the same as the username, the name that other users see in the playerlists.
As a result, it's possible that users cannot login because their loginname is in the banlist, while they weren't banned by their nickname.
If the bancheck is moved to 'SmartFoxServer.canLogin', it would make more sense, because most of the validation is done there anyway.
ps: I think it would made better sense if the check about whether the zone is full or not should also be placed in the SmartFoxServer.canLogin method.
That way most validation is placed in one location instead of everywhere throughout the classes some parts of validation, don't you agree ?