1,101 → 1,101 |
package ak.hostcaptain.core.model; |
|
import ak.hostcaptain.util.Digest; |
import ak.hostcaptain.util.ModelException; |
import ak.hostcaptain.util.ModelSecurityException; |
|
/** |
* |
* @hibernate.class table="users" |
*/ |
public class User |
extends GeneralModelObject |
{ |
private Long id; |
private String login; |
private String password; |
package ak.hostcaptain.core.model; |
|
import ak.hostcaptain.util.Digest; |
import ak.hostcaptain.util.ModelException; |
import ak.hostcaptain.util.ModelSecurityException; |
|
/** |
* |
* @hibernate.class table="users" |
*/ |
public class User |
extends GeneralModelObject |
{ |
private Long id; |
private String login; |
private String password; |
private User boss; |
private Boolean superuser; |
|
protected User() |
{ |
} |
|
/** |
* |
* @hibernate.id generator-class="native" |
*/ |
public Long getId() |
{ |
return id; |
} |
|
protected void setId(Long id) |
{ |
this.id = id; |
} |
|
/** |
* |
* @hibernate.property |
*/ |
public String getLogin() |
{ |
return login; |
} |
|
protected void setLogin(String login) |
{ |
this.login = login; |
} |
|
public void setLogin(User editor, String login) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
|
this.login = login; |
} |
|
/** |
* |
* @hibernate.property |
*/ |
protected String getPassword() |
{ |
return password; |
} |
|
protected void setPassword(String password) |
{ |
|
protected User() |
{ |
} |
|
/** |
* |
* @hibernate.id generator-class="native" |
*/ |
public Long getId() |
{ |
return id; |
} |
|
protected void setId(Long id) |
{ |
this.id = id; |
} |
|
/** |
* |
* @hibernate.property |
*/ |
public String getLogin() |
{ |
return login; |
} |
|
protected void setLogin(String login) |
{ |
this.login = login; |
} |
|
public void setLogin(User editor, String login) |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
|
this.login = login; |
} |
|
/** |
* |
* @hibernate.property |
*/ |
protected String getPassword() |
{ |
return password; |
} |
|
protected void setPassword(String password) |
{ |
this.password = password; |
} |
|
public void setPassword(User editor, String password) |
throws ModelException |
{ |
if(!mayChangePassword(editor)) |
throw new ModelSecurityException(); |
|
if(password == null) |
throw new NullPointerException("Null password"); |
|
} |
|
public void setPassword(User editor, String password) |
throws ModelException |
{ |
if(!mayChangePassword(editor)) |
throw new ModelSecurityException(); |
|
if(password == null) |
throw new NullPointerException("Null password"); |
|
this.password = Digest.encode(password); |
} |
|
public boolean checkPassword(String password) |
{ |
if(password == null) |
throw new NullPointerException("Null password"); |
|
} |
|
public boolean checkPassword(String password) |
{ |
if(password == null) |
throw new NullPointerException("Null password"); |
|
return checkMd5Password(Digest.encode(password)); |
} |
|
public boolean checkMd5Password(String password) |
{ |
} |
|
public boolean checkMd5Password(String password) |
{ |
return this.password.equals(password); |
} |
} |
|
/** |
* |
112,11 → 112,11 |
} |
|
public void setBoss(User editor, User boss) |
throws ModelException |
throws ModelException |
{ |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
|
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
|
this.boss = boss; |
} |
|
133,7 → 133,7 |
{ |
return (superuser != null) && superuser.booleanValue(); |
} |
|
|
protected void setSuperuser(Boolean superuser) |
{ |
this.superuser = superuser; |
140,73 → 140,73 |
} |
|
public void setSuperuser(User editor, Boolean superuser) |
throws ModelException |
throws ModelException |
{ |
if(!mayChangeSuperuser(editor)) |
throw new ModelSecurityException(); |
|
if(!mayChangeSuperuser(editor)) |
throw new ModelSecurityException(); |
|
this.superuser = superuser; |
} |
|
public boolean equals(Object o) |
{ |
if(o == null || !(o instanceof User)) return false; |
|
User u = (User)o; |
return (id != null) && (u.getId() != null) && (id.equals(u.getId())); |
} |
|
public int hashCode() |
{ |
if(id == null) |
return 0; |
else |
return id.hashCode(); |
} |
|
public String getTypeKey() |
{ |
return ak.hostcaptain.core.CoreResources.TYPE_USER; |
} |
|
public String getIdentKey() |
{ |
return ak.hostcaptain.core.CoreResources.IDENT_USER; |
} |
|
public Object[] getIdentParams() |
{ |
return new Object[] { getLogin() }; |
} |
|
public boolean viewableBy(User user) |
{ |
return user.isSuperuser() || user.equals(boss) || user.equals(this); |
} |
|
public boolean editableBy(User user) |
{ |
return user.isSuperuser() || user.equals(boss); |
} |
|
public boolean deleteableBy(User user) |
{ |
return user.isSuperuser() || user.equals(boss); |
} |
|
public boolean mayChangePassword(User user) |
{ |
return user.isSuperuser() || user.equals(boss) || user.equals(this); |
} |
|
public boolean mayChangeSuperuser(User user) |
{ |
return user.isSuperuser() && !user.equals(this); |
} |
|
protected static boolean allowedToCreate(UserManager manager, User editor) |
throws ModelException |
{ |
return editor.isSuperuser(); |
} |
} |
|
public boolean equals(Object o) |
{ |
if(o == null || !(o instanceof User)) return false; |
|
User u = (User)o; |
return (id != null) && (u.getId() != null) && (id.equals(u.getId())); |
} |
|
public int hashCode() |
{ |
if(id == null) |
return 0; |
else |
return id.hashCode(); |
} |
|
public String getTypeKey() |
{ |
return ak.hostcaptain.core.CoreResources.TYPE_USER; |
} |
|
public String getIdentKey() |
{ |
return ak.hostcaptain.core.CoreResources.IDENT_USER; |
} |
|
public Object[] getIdentParams() |
{ |
return new Object[] { getLogin() }; |
} |
|
public boolean viewableBy(User user) |
{ |
return user.isSuperuser() || user.equals(boss) || user.equals(this); |
} |
|
public boolean editableBy(User user) |
{ |
return user.isSuperuser() || user.equals(boss); |
} |
|
public boolean deleteableBy(User user) |
{ |
return user.isSuperuser() || user.equals(boss); |
} |
|
public boolean mayChangePassword(User user) |
{ |
return user.isSuperuser() || user.equals(boss) || user.equals(this); |
} |
|
public boolean mayChangeSuperuser(User user) |
{ |
return user.isSuperuser() && !user.equals(this); |
} |
|
protected static boolean allowedToCreate(UserManager manager, User editor) |
throws ModelException |
{ |
return editor.isSuperuser(); |
} |
} |