0,0 → 1,52 |
package ak.hostadmiral.listener.uservalidatoratdomain; |
|
import java.util.Map; |
import java.util.Collection; |
import java.util.Iterator; |
|
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserManager; |
import ak.hostadmiral.core.model.UserValidateListener; |
import ak.hostadmiral.core.model.InetDomain; |
import ak.hostadmiral.core.model.InetDomainManager; |
import ak.hostadmiral.util.ConfigInit; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.util.ModelUserException; |
import ak.hostadmiral.util.ResourceManager; |
|
public class UserValidatorAtDomain |
implements |
ConfigInit, |
UserValidateListener |
{ |
public void init(Map params) |
{ |
UserManager.getInstance().addValidateListener(this); |
ResourceManager.getInstance().addResource( |
"ak.hostadmiral.listener.uservalidatoratdomain.UserValidatorAtDomainMessages"); |
} |
|
public void userValidate(User editor, User user, User oldUser) |
throws ModelException |
{ |
// superuser |
if(editor.isSuperuser()) return; |
|
// login not changed |
if(oldUser.getLogin() != null && user.getLogin().equals(oldUser.getLogin())) |
return; |
|
// go through all domains |
Collection domains = InetDomainManager.getInstance().listInetDomains(editor); |
for(Iterator i = domains.iterator(); i.hasNext(); ) { |
InetDomain domain = (InetDomain)i.next(); |
|
if(user.getLogin().endsWith("@" + domain.getName())) |
return; |
} |
|
// nothing found |
throw new ModelUserException( |
"ak.hostadmiral.listener.uservalidatoratdomain.login.wrong"); |
} |
} |