[jboss-svn-commits] JBL Code SVN: r19378 - in labs/jbosslabs/labs-3.0-build: core/core-model/src/main/java/org/jboss/labs/core/model/auth and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Apr 2 10:50:01 EDT 2008
Author: szimano
Date: 2008-04-02 10:50:01 -0400 (Wed, 02 Apr 2008)
New Revision: 19378
Added:
labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/ProjectRole.java
Modified:
labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/RoleBinderService.java
labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/UserService.java
labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/RoleBinderServiceImpl.java
labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/UserServiceImpl.java
labs/jbosslabs/labs-3.0-build/views/auth/src/main/java/org/jboss/labs/view/auth/action/UserManager.java
labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/grant_superroles.xhtml
labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/include/choose_user.xhtml
labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/review_privileges.xhtml
Log:
auth for user
Modified: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/RoleBinderService.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/RoleBinderService.java 2008-04-02 13:40:54 UTC (rev 19377)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/RoleBinderService.java 2008-04-02 14:50:01 UTC (rev 19378)
@@ -33,6 +33,7 @@
import org.jboss.labs.core.model.auth.Binding;
import org.jboss.labs.core.model.auth.CustomID;
import org.jboss.labs.core.model.auth.ProjectID;
+import org.jboss.labs.core.model.auth.ProjectRole;
import org.jboss.labs.core.model.auth.Service;
import org.jboss.labs.core.model.auth.ServiceRole;
import org.jboss.labs.core.model.auth.UserRole;
@@ -427,4 +428,15 @@
* @return Map of bindings AuthID -> Set of service roles
*/
public Map<AuthID, Set<ServiceRole>> getBindingsForUserRole(UserRole ur);
+
+ /**
+ * Gets user role for a project and project role.
+ *
+ * @param projectId
+ * Project id
+ * @param projectRole
+ * Project role
+ * @return UserRole
+ */
+ public UserRole getProjectRole(String projectId, ProjectRole projectRole);
}
Modified: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/UserService.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/UserService.java 2008-04-02 13:40:54 UTC (rev 19377)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/auth/UserService.java 2008-04-02 14:50:01 UTC (rev 19378)
@@ -247,4 +247,12 @@
* @return All users
*/
public Set<User> getAllUsers();
+
+ /**
+ * This will change user's details (merge it with database).
+ *
+ * @param user User to modify
+ * @throws NoSuchUserException If user doesn't exist
+ */
+ public void updateUser(User user) throws NoSuchUserException;
}
Added: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/ProjectRole.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/ProjectRole.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/ProjectRole.java 2008-04-02 14:50:01 UTC (rev 19378)
@@ -0,0 +1,34 @@
+/*
+ * JBoss Labs. http://labs.jboss.com/jbosslabs
+ *
+ * Copyright (C) 2008 Red Hat Middleware, LLC. All rights reserved.
+ *
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT A WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License, v.2.1 along with this distribution; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ * Red Hat Author(s): Bob McWhirter, Przemyslaw Dej, Ryszard Kozmik,
+ * Tomasz Szymanski, Adam Warski, Pawel Wrzeszcz
+ */
+package org.jboss.labs.core.model.auth;
+
+/**
+ * @author tomaszszymanski
+ *
+ */
+public enum ProjectRole {
+ ADMIN,
+ CONTRIBUTOR,
+ EDITOR,
+ TRANSLATOR;
+}
Modified: labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/RoleBinderServiceImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/RoleBinderServiceImpl.java 2008-04-02 13:40:54 UTC (rev 19377)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/RoleBinderServiceImpl.java 2008-04-02 14:50:01 UTC (rev 19378)
@@ -46,6 +46,7 @@
import org.jboss.labs.core.model.auth.Binding;
import org.jboss.labs.core.model.auth.CustomID;
import org.jboss.labs.core.model.auth.ProjectID;
+import org.jboss.labs.core.model.auth.ProjectRole;
import org.jboss.labs.core.model.auth.Service;
import org.jboss.labs.core.model.auth.ServiceRole;
import org.jboss.labs.core.model.auth.User;
@@ -56,6 +57,7 @@
import org.jboss.labs.exception.auth.NoSuchSuperUserException;
import org.jboss.labs.exception.auth.NoSuchUserException;
import org.jboss.labs.exception.auth.NoSuchUserRoleException;
+import org.jboss.labs.exception.auth.RoleExistsException;
import org.jboss.labs.injection.ejb3.LabsInjectionInterceptor;
import com.google.inject.Inject;
@@ -561,4 +563,34 @@
return m;
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.labs.auth.RoleBinderService#getProjectRole(java.lang.String,
+ * org.jboss.labs.core.model.auth.ProjectRole)
+ */
+ public UserRole getProjectRole(String projectId, ProjectRole projectRole) {
+ String roleId = projectId
+ + "-"
+ + projectRole.toString().substring(
+ projectRole.toString().lastIndexOf('.') + 1);
+
+ UserRole uRole;
+
+ try {
+ uRole = userService.getUserRole(roleId);
+ } catch (NoSuchUserRoleException e) {
+ uRole = new UserRole(roleId, "Role for all "
+ + projectRole.toString().substring(
+ projectRole.toString().lastIndexOf('.') + 1)
+ + " in project " + projectId);
+ try {
+ userService.addUserRole(uRole);
+ } catch (RoleExistsException e1) {
+ // not going to happen
+ }
+ }
+
+ return uRole;
+ }
}
Modified: labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/UserServiceImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/UserServiceImpl.java 2008-04-02 13:40:54 UTC (rev 19377)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/UserServiceImpl.java 2008-04-02 14:50:01 UTC (rev 19378)
@@ -69,29 +69,20 @@
if (manager.createQuery("SELECT u FROM User u").setMaxResults(1)
.getResultList().size() == 0) {
- User admin = new User("admin");
- admin.setPassword(AuthHelper.countMD5("admin"));
- User user = new User("user");
- user.setPassword(AuthHelper.countMD5("user"));
- add("bob");
- add("tomek");
- add("adam");
- add("przemek");
- add("rysiek");
- add("james");
- add("mark");
- add("cheyenne");
- add("pawel");
- add("sacha");
+ addDummyUser("bob", "Bob", "McWhirter");
+ addDummyUser("tomek", "Tomek", "Szymanski");
+ addDummyUser("adam", "Adam", "Warski");
+ addDummyUser("przemek", "Przemek", "Dej");
+ addDummyUser("rysiek", "Rysiek", "Kozmik");
+ addDummyUser("james", "James", "Cobb");
+ addDummyUser("mark", "Mark", "Newton");
+ addDummyUser("cheyenne", "Cheyenne", "Weaver");
+ addDummyUser("pawel", "Pawel", "Wrzeszcz");
+ addDummyUser("sacha", "Sasha", "Laborney");
- try {
- addNewUser(user);
- addNewUser(admin);
- } catch (UserExistsException e2) {
- // won't happen
- log.error(e2);
- }
+ User admin = addDummyUser("admin", "Admin", "Admin");
+ User user = addDummyUser("user", "User", "User");
UserRole adminRole = new UserRole("Administrators",
"System administartors");
@@ -141,16 +132,20 @@
return ctx.proceed();
}
- private void add(String u) {
+ private User addDummyUser(String u, String name, String lastName)
+ throws UserExistsException {
User user = new User(u);
user.setPassword(AuthHelper.countMD5(u));
user.setEmail(u + "@jboss.org");
- try {
- addNewUser(user);
- } catch (UserExistsException e) {
- e.printStackTrace(); // To change body of catch statement use
- // File | Settings | File Templates.
- }
+ user.setFirstName(name);
+ user.setLastName(lastName);
+ user.setFakeEmail(u + "[AT]jboss.org");
+ user.setBio(name + " " + lastName + " is a good guy");
+ user.setWebsite("http://www." + u + ".org");
+
+ addNewUser(user);
+
+ return user;
}
public void bindRoleToUser(Principal user, UserRole role)
@@ -439,7 +434,9 @@
.getResultList());
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.jboss.labs.auth.UserService#getAllUsers()
*/
@SuppressWarnings("unchecked")
@@ -447,4 +444,15 @@
return new TreeSet(manager.createQuery("SELECT u from User u")
.getResultList());
}
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.labs.auth.UserService#changeUserDetails(org.jboss.labs.core.model.auth.User)
+ */
+ public void updateUser(User user) throws NoSuchUserException {
+ getUser(user);
+
+ manager.merge(user);
+ }
}
Modified: labs/jbosslabs/labs-3.0-build/views/auth/src/main/java/org/jboss/labs/view/auth/action/UserManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/auth/src/main/java/org/jboss/labs/view/auth/action/UserManager.java 2008-04-02 13:40:54 UTC (rev 19377)
+++ labs/jbosslabs/labs-3.0-build/views/auth/src/main/java/org/jboss/labs/view/auth/action/UserManager.java 2008-04-02 14:50:01 UTC (rev 19378)
@@ -36,6 +36,7 @@
import org.jboss.labs.core.model.auth.ServiceRole;
import org.jboss.labs.core.model.auth.User;
import org.jboss.labs.core.model.auth.UserRole;
+import org.jboss.labs.exception.auth.NoSuchUserException;
import org.jboss.labs.exception.auth.NoSuchUserRoleException;
import org.jboss.labs.injection.seam.Guice;
import org.jboss.seam.ScopeType;
@@ -78,8 +79,12 @@
@DataModel
private List<User> allUsers;
+ private List<User> allUsersNonFiltered;
+
private List<User> usersInRole;
+ private String searchString;
+
@In(required = false)
ServiceManager services;
@@ -93,7 +98,8 @@
@Factory("allUsers")
public void findUsers() {
- allUsers = new Vector<User>(userService.getAllUsers());
+ allUsersNonFiltered = new Vector<User>(userService.getAllUsers());
+ allUsers = new Vector<User>(allUsersNonFiltered);
}
public void setRole() {
@@ -181,4 +187,65 @@
return c.get(Calendar.HOUR_OF_DAY) + ":" + c.get(Calendar.MINUTE) + ":"
+ c.get(Calendar.SECOND);
}
+
+ public User getCurrentUser() {
+ return currentUser;
+ }
+
+ public void saveUser() {
+ if (currentUser != null) {
+ try {
+ userService.updateUser(currentUser);
+ ViewHelper.addMessage("User saved");
+ } catch (NoSuchUserException e) {
+ ViewHelper.addErrorMessage(e);
+ }
+ }
+ }
+
+ public String getSearchString() {
+ return searchString;
+ }
+
+ public void setSearchString(String searchString) {
+ this.searchString = searchString;
+
+ String[] tokens = searchString.split(" ");
+
+ if (searchString != null && searchString.length() > 2) {
+ allUsers = new Vector<User>();
+
+ for (User u : allUsersNonFiltered) {
+ if (userMatches(tokens, u)) {
+ allUsers.add(u);
+ }
+ }
+ } else {
+ allUsers = new Vector<User>(allUsersNonFiltered);
+ }
+ }
+
+ private boolean userMatches(String[] search, User u) {
+
+ for (String s : search) {
+ boolean isOkOne = false;
+ String sLow = s.toLowerCase();
+
+ if (u.getName().toLowerCase().contains(sLow)) {
+ isOkOne = true;
+ } else if (u.getFirstName().toLowerCase().contains(sLow)) {
+ isOkOne = true;
+ } else if (u.getLastName().toLowerCase().contains(sLow)) {
+ isOkOne = true;
+ } else if (u.getEmail().toLowerCase().contains(sLow)) {
+ isOkOne = true;
+ }
+
+ if (isOkOne == false) {
+ return false;
+ }
+ }
+
+ return true;
+ }
}
Modified: labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/grant_superroles.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/grant_superroles.xhtml 2008-04-02 13:40:54 UTC (rev 19377)
+++ labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/grant_superroles.xhtml 2008-04-02 14:50:01 UTC (rev 19378)
@@ -12,18 +12,40 @@
<a4j:form>
<h:panelGroup>
- <h:panelGroup id="buttons">
- <h:outputText value="Privileges list:"></h:outputText>
- <rich:dataList value="#{reviewPrivs.rolePrivList}" var="priv">
- <h:outputText value="#{priv}" />
- </rich:dataList>
- </h:panelGroup>
+ <a4j:outputPanel id="userDetails">
+ <h:panelGrid columns="2" rendered="#{users.currentUser != null}">
+ <h:outputText value="User login" />
+ <h:inputText value="#{users.currentUser.name}" readonly="true"></h:inputText>
+ <h:outputText value="First name" />
+ <h:inputText value="#{users.currentUser.firstName}"></h:inputText>
+ <h:outputText value="Last name" />
+ <h:inputText value="#{users.currentUser.lastName}"></h:inputText>
+ <h:outputText value="Email" />
+ <h:inputText value="#{users.currentUser.email}"></h:inputText>
+ <h:outputText value="Fake email" />
+ <h:inputText value="#{users.currentUser.fakeEmail}"></h:inputText>
+ <h:outputText value="Picture URL" />
+ <h:inputText value="#{users.currentUser.pictureURL}"></h:inputText>
+ <h:outputText value="Website" />
+ <h:inputText value="#{users.currentUser.website}"></h:inputText>
+ <h:outputText value="New password" />
+ <h:inputSecret value=""></h:inputSecret>
+ <h:outputText value="New password again" />
+ <h:inputSecret value=""></h:inputSecret>
+ <h:outputText value="Bio"/>
+ <h:inputTextarea value="#{users.currentUser.bio}"/>
+
+ <a4j:commandButton action="#{users.saveUser}" value="Save"/>
+ </h:panelGrid>
+
+ </a4j:outputPanel>
<ui:include src="include/choose_user.xhtml" />
<!-- ui:include src="include/choose_project.xhtml" />
<ui:include src="include/show_userrole.xhtml" /> -->
+
</h:panelGroup>
</a4j:form>
Modified: labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/include/choose_user.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/include/choose_user.xhtml 2008-04-02 13:40:54 UTC (rev 19377)
+++ labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/include/choose_user.xhtml 2008-04-02 14:50:01 UTC (rev 19378)
@@ -6,8 +6,18 @@
xmlns:rich="http://richfaces.org/rich"
xmlns:a4j="http://richfaces.org/a4j">
+ Search:
+ <h:inputText value="#{users.searchString}">
+ <a4j:support event="onkeyup" reRender="userList, listScroller"></a4j:support>
+ </h:inputText>
+
+
+ <rich:datascroller id="listScroller" align="left" for="userList"
+ maxPages="20" />
+ <rich:spacer height="30" />
+
<rich:dataTable width="483" id="userList" rows="10" columnClasses="col"
- value="#{allUsers}" var="user" >
+ value="#{allUsers}" var="user">
<f:facet name="header">
<rich:columnGroup>
@@ -28,13 +38,13 @@
<h:column>
<h:outputText value="#{user.firstName} #{user.lastName}" />
</h:column>
-
+
<h:column>
- <a4j:commandButton value="Choose" reRender="buttons,privDesc,roleList" action="#{users.setRole}" />
+ <a4j:commandButton value="Choose"
+ reRender="buttons,privDesc,roleList,userDetails"
+ action="#{users.setRole}" />
</h:column>
</rich:dataTable>
-
- <rich:spacer height="30" />
- <rich:datascroller id="listScroller" align="left" for="userList"
- maxPages="20" />
+
+
</h:panelGroup>
\ No newline at end of file
Modified: labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/review_privileges.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/review_privileges.xhtml 2008-04-02 13:40:54 UTC (rev 19377)
+++ labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/review_privileges.xhtml 2008-04-02 14:50:01 UTC (rev 19378)
@@ -22,7 +22,7 @@
<ui:include src="include/choose_user_role.xhtml" />
<ui:include src="include/show_userrole.xhtml" />
-
+
</h:panelGroup>
</a4j:form>
More information about the jboss-svn-commits
mailing list