[jboss-cvs] jboss-seam/seam-gen/src ...
Shane Bryzak
sbryzak at redhat.com
Wed Jan 9 22:33:52 EST 2008
User: sbryzak2
Date: 08/01/09 22:33:52
Added: seam-gen/src UserAccount.java UserAction.java
UserSearch.java
Removed: seam-gen/src Authenticator.java
Log:
added identity management to seam-gen
Revision Changes Path
1.1 date: 2008/01/10 03:33:52; author: sbryzak2; state: Exp;jboss-seam/seam-gen/src/UserAccount.java
Index: UserAccount.java
===================================================================
package @modelPackage@;
import java.io.Serializable;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import org.hibernate.validator.NotNull;
@Entity
@Table(uniqueConstraints = @UniqueConstraint(columnNames = "username"))
public class UserAccount extends org.jboss.seam.security.management.UserAccount implements Serializable
{
private static final long serialVersionUID = 6368734442192368866L;
private Integer accountId;
private String username;
private String passwordHash;
private boolean enabled;
private AccountType accountType;
private Set<org.jboss.seam.security.management.UserAccount> memberships;
@Id @GeneratedValue
public Integer getAccountId()
{
return accountId;
}
public void setAccountId(Integer accountId)
{
this.accountId = accountId;
}
@NotNull
@Override
public String getUsername()
{
return username;
}
@Override
public void setUsername(String username)
{
this.username = username;
}
@Override
public String getPasswordHash()
{
return passwordHash;
}
@Override
public void setPasswordHash(String passwordHash)
{
this.passwordHash = passwordHash;
}
@Override
public AccountType getAccountType()
{
return accountType;
}
@Override
public void setAccountType(AccountType accountType)
{
this.accountType = accountType;
}
@Override
public boolean isEnabled()
{
return enabled;
}
@Override
public void setEnabled(boolean enabled)
{
this.enabled = enabled;
}
@ManyToMany(targetEntity = UserAccount.class)
@JoinTable(name = "AccountMembership",
joinColumns = @JoinColumn(name = "AccountId"),
inverseJoinColumns = @JoinColumn(name = "MemberOf")
)
@Override
public Set<org.jboss.seam.security.management.UserAccount> getMemberships()
{
return memberships;
}
@Override
public void setMemberships(Set<org.jboss.seam.security.management.UserAccount> memberships)
{
this.memberships = memberships;
}
}
1.1 date: 2008/01/10 03:33:52; author: sbryzak2; state: Exp;jboss-seam/seam-gen/src/UserAction.java
Index: UserAction.java
===================================================================
package @actionPackage@;
import static org.jboss.seam.ScopeType.CONVERSATION;
import java.util.ArrayList;
import java.util.List;
import org.jboss.seam.annotations.Begin;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.core.Conversation;
import org.jboss.seam.faces.FacesMessages;
import org.jboss.seam.security.management.IdentityManager;
@Name("userAction")
@Scope(CONVERSATION)
public class UserAction
{
private String username;
private String password;
private String confirm;
private List<String> roles;
private boolean enabled;
@In IdentityManager identityManager;
@Begin
public void createUser()
{
roles = new ArrayList<String>();
}
@Begin
public void editUser(String username)
{
this.username = username;
roles = identityManager.getGrantedRoles(username);
enabled = identityManager.isEnabled(username);
}
public String save()
{
if (identityManager.accountExists(username))
{
return saveExistingUser();
}
else
{
return saveNewUser();
}
}
private String saveNewUser()
{
if (!password.equals(confirm))
{
FacesMessages.instance().addToControl("password", "Passwords do not match");
return "failure";
}
boolean success = identityManager.createAccount(username, password);
if (success)
{
for (String role : roles)
{
identityManager.grantRole(username, role);
}
if (!enabled)
{
identityManager.disableAccount(username);
}
Conversation.instance().end();
}
return "success";
}
private String saveExistingUser()
{
// Check if a new password has been entered
if (password != null && !"".equals(password))
{
if (!password.equals(confirm))
{
FacesMessages.instance().addToControl("password", "Passwords do not match");
return "failure";
}
else
{
identityManager.changePassword(username, password);
}
}
List<String> grantedRoles = identityManager.getGrantedRoles(username);
for (String role : grantedRoles)
{
if (!roles.contains(role)) identityManager.revokeRole(username, role);
}
for (String role : roles)
{
if (!grantedRoles.contains(role)) identityManager.grantRole(username, role);
}
if (enabled)
{
identityManager.enableAccount(username);
}
else
{
identityManager.disableAccount(username);
}
Conversation.instance().end();
return "success";
}
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
public String getConfirm()
{
return confirm;
}
public void setConfirm(String confirm)
{
this.confirm = confirm;
}
public List<String> getRoles()
{
return roles;
}
public void setRoles(List<String> roles)
{
this.roles = roles;
}
public boolean isEnabled()
{
return enabled;
}
public void setEnabled(boolean enabled)
{
this.enabled = enabled;
}
}
1.1 date: 2008/01/10 03:33:52; author: sbryzak2; state: Exp;jboss-seam/seam-gen/src/UserSearch.java
Index: UserSearch.java
===================================================================
package @actionPackage@;
import static org.jboss.seam.ScopeType.SESSION;
import java.io.Serializable;
import java.util.List;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.datamodel.DataModel;
import org.jboss.seam.annotations.datamodel.DataModelSelection;
import org.jboss.seam.security.management.IdentityManager;
@Name("userSearch")
@Scope(SESSION)
public class UserSearch implements Serializable
{
private static final long serialVersionUID = 8592034786339372510L;
@DataModel
List<String> users;
@DataModelSelection
String selectedUser;
@In IdentityManager identityManager;
public void loadUsers()
{
users = identityManager.listUsers();
}
public String getUserRoles(String username)
{
List<String> roles = identityManager.getGrantedRoles(username);
StringBuilder sb = new StringBuilder();
for (String role : roles)
{
sb.append((sb.length() > 0 ? ", " : "") + role);
}
return sb.toString();
}
public String getSelectedUser()
{
return selectedUser;
}
}
More information about the jboss-cvs-commits
mailing list