[jboss-svn-commits] JBL Code SVN: r18530 - in labs/jbosslabs/labs-3.0-build: core/core-model/src/main/java/org/jboss/labs/core/model and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Feb 20 11:52:36 EST 2008
Author: wrzep
Date: 2008-02-20 11:52:36 -0500 (Wed, 20 Feb 2008)
New Revision: 18530
Modified:
labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/core/service/ProjectService.java
labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Project.java
labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceBean.java
labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/UserManager.java
labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/Authenticator.java
labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/joinProject.xhtml
labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project.xhtml
Log:
JBLAB-913 finished join project impl
Modified: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/core/service/ProjectService.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/core/service/ProjectService.java 2008-02-20 15:30:43 UTC (rev 18529)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/core/service/ProjectService.java 2008-02-20 16:52:36 UTC (rev 18530)
@@ -26,6 +26,7 @@
import org.jboss.labs.core.model.Project;
import org.jboss.labs.core.model.ContributorAgreement;
import org.jboss.labs.core.model.admin.ProjectRequest;
+import org.jboss.labs.core.model.admin.JoinRequest;
import org.jboss.labs.exception.admin.CreateProjectException;
import org.jboss.labs.exception.admin.ProjectNotFoundException;
@@ -46,4 +47,6 @@
boolean canJoin(String name, Project project);
List<ContributorAgreement> getCAsRequiredToJoin(String name, Project project);
+
+ void addUserToProject(JoinRequest joinRequest) throws ProjectNotFoundException;
}
Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Project.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Project.java 2008-02-20 15:30:43 UTC (rev 18529)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Project.java 2008-02-20 16:52:36 UTC (rev 18530)
@@ -281,6 +281,31 @@
}
}
+ public void addContributor(Username contributor) {
+ if (projectLeads == null) {
+ setProjectLeads(Arrays.asList(contributor));
+ } else {
+ projectLeads.add(contributor);
+ }
+ }
+
+ public boolean canJoin(String username) {
+
+ for (Username contributor : contributors) {
+ if (contributor.getUsername().equals(username)) {
+ return false;
+ }
+ }
+
+ for (Username projectLead : projectLeads) {
+ if (projectLead.getUsername().equals(username)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
@Transient
public String getJira() {
if ((issueTracker == null) || (!IssueTrackerType.JIRA.equals(issueTracker.getType()))) {
Modified: labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceBean.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceBean.java 2008-02-20 15:30:43 UTC (rev 18529)
+++ labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceBean.java 2008-02-20 16:52:36 UTC (rev 18530)
@@ -2,6 +2,7 @@
import org.jboss.labs.core.model.*;
import org.jboss.labs.core.model.admin.ProjectRequest;
+import org.jboss.labs.core.model.admin.JoinRequest;
import org.jboss.labs.core.service.ProjectService;
import org.jboss.labs.exception.admin.CreateProjectException;
import org.jboss.labs.exception.admin.ProjectNotFoundException;
@@ -41,11 +42,7 @@
String lu = projectRequest.getLeadUsername();
Username leadUsername = null;
try {
- leadUsername = (Username) em.createQuery("SELECT u FROM Username u WHERE u.username = :username")
- .setParameter("username", lu)
- .getSingleResult();
-
- System.out.println("leadUsername: " + (leadUsername == null ? "" : leadUsername.getUsername()));
+ leadUsername = getUsername(lu);
} catch (NoResultException e) {
// do nothing
}
@@ -144,6 +141,13 @@
return em.createQuery("SELECT p FROM Project p").getResultList();
}
+ private Username getUsername(String username) {
+
+ return (Username) em.createQuery("SELECT u FROM Username u WHERE u.username = :username")
+ .setParameter("username", username)
+ .getSingleResult();
+ }
+
public Project getProject(String projectId) throws ProjectNotFoundException {
Object o;
@@ -158,6 +162,12 @@
}
+ public void addUserToProject(JoinRequest joinRequest) throws ProjectNotFoundException {
+ Project p = getProject(joinRequest.getProjectId()); // Yes, we don't need EJB3 call here
+ Username u = getUsername(joinRequest.getUsername());
+
+ p.getContributors().add(u);
+ }
}
Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/UserManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/UserManager.java 2008-02-20 15:30:43 UTC (rev 18529)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/UserManager.java 2008-02-20 16:52:36 UTC (rev 18530)
@@ -26,8 +26,10 @@
import com.google.inject.Inject;
import org.jboss.labs.core.model.Project;
import org.jboss.labs.core.model.admin.ProjectRequest;
+import org.jboss.labs.core.model.admin.JoinRequest;
import org.jboss.labs.core.service.ProjectService;
import org.jboss.labs.injection.seam.Guice;
+import org.jboss.labs.exception.admin.ProjectNotFoundException;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
@@ -40,11 +42,20 @@
@Guice
public class UserManager {
- @Logger private Log log;
+ @In(create = true) private JoinRequest joinRequest;
+ @Logger Log log;
+
+ @Inject private ProjectService projectService;
+
public boolean addUserToProject() {
- log.info("addUserToProject");
+ try {
+ projectService.addUserToProject(joinRequest);
+ } catch (ProjectNotFoundException e) {
+ log.warn(e);
+ return false;
+ }
return true;
}
Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/Authenticator.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/Authenticator.java 2008-02-20 15:30:43 UTC (rev 18529)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/Authenticator.java 2008-02-20 16:52:36 UTC (rev 18530)
@@ -77,7 +77,8 @@
try {
user = userService.getUserByLogin(login);
} catch (NoSuchUserException e) {
- user = new User(); //TODO get rid of this line
+ user = new User(); //TODO get rid of this 2 lines
+ user.setName(actor.getId());
}
}
}
Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/joinProject.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/joinProject.xhtml 2008-02-20 15:30:43 UTC (rev 18529)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/joinProject.xhtml 2008-02-20 16:52:36 UTC (rev 18530)
@@ -15,8 +15,8 @@
<f:facet name="header">Join Project</f:facet>
<h:form id="mainForm" >
Do you want to apply to join project #{project.name}?
- <h:commandButton value="OK" action="#{joinProject.createRequest}"/>
- <h:commandButton value="Cancel" action="/project.seam"/>
+ <h:commandButton value="Yes" action="#{joinProject.createRequest}"/>
+ <h:commandButton value="No" action="/project.seam"/>
</h:form>
</rich:panel>
Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project.xhtml 2008-02-20 15:30:43 UTC (rev 18529)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project.xhtml 2008-02-20 16:52:36 UTC (rev 18530)
@@ -45,7 +45,8 @@
<ui:repeat var="contributor" value="#{project.contributors}">
#{contributor.username}
</ui:repeat>
- <h:commandLink action="#{joinProject.join}" value="Join!" />
+ <h:commandLink action="#{joinProject.join}" value="Join!"
+ rendered="#{project.canJoin(user.name)}"/>
</td>
</tr>
</table>
More information about the jboss-svn-commits
mailing list