diff -uNr syllabus_2-6-x_SAK-15571/components/src/webapp/WEB-INF/components.xml syllabus_2-6-x_SAK-15793/components/src/webapp/WEB-INF/components.xml
--- syllabus_2-6-x_SAK-15571/components/src/webapp/WEB-INF/components.xml 2009-04-09 14:52:00.000000000 -0700
+++ syllabus_2-6-x_SAK-15793/components/src/webapp/WEB-INF/components.xml 2009-04-09 13:45:20.000000000 -0700
@@ -62,4 +62,31 @@
+
+
+
+
+
+
+
+
+
+
+
+ FixPublicSyllabusAttachmentsJob
+
+
+
+ Fix Public Syllabus Attachments Job
+
+
+
+
+
+
+
diff -uNr syllabus_2-6-x_SAK-15571/syllabus-api/src/java/org/sakaiproject/api/app/syllabus/SyllabusManager.java syllabus_2-6-x_SAK-15793/syllabus-api/src/java/org/sakaiproject/api/app/syllabus/SyllabusManager.java
--- syllabus_2-6-x_SAK-15571/syllabus-api/src/java/org/sakaiproject/api/app/syllabus/SyllabusManager.java 2009-04-09 14:51:59.000000000 -0700
+++ syllabus_2-6-x_SAK-15793/syllabus-api/src/java/org/sakaiproject/api/app/syllabus/SyllabusManager.java 2009-04-09 13:47:13.000000000 -0700
@@ -69,6 +69,10 @@
public Set getSyllabusAttachmentsForSyllabusData(final SyllabusData syllabusData);
public SyllabusAttachment getSyllabusAttachment(final String syllabusAttachId);
+
+ public Set findPublicSyllabusData();
+
+ public void updateSyllabusAttachmentsViewState(final SyllabusData syllabusData);
//public SyllabusAttachment creatSyllabusAttachmentResource(String attachId, String name);
}
diff -uNr syllabus_2-6-x_SAK-15571/syllabus-impl/pom.xml syllabus_2-6-x_SAK-15793/syllabus-impl/pom.xml
--- syllabus_2-6-x_SAK-15571/syllabus-impl/pom.xml 2009-04-09 14:52:00.000000000 -0700
+++ syllabus_2-6-x_SAK-15793/syllabus-impl/pom.xml 2009-04-09 13:49:07.000000000 -0700
@@ -89,6 +89,11 @@
commons-codec
1.3
+
+ quartz
+ quartz
+ 1.5.2
+
diff -uNr syllabus_2-6-x_SAK-15571/syllabus-impl/src/java/org/sakaiproject/component/app/syllabus/FixPublicSyllabusAttachmentsJob.java syllabus_2-6-x_SAK-15793/syllabus-impl/src/java/org/sakaiproject/component/app/syllabus/FixPublicSyllabusAttachmentsJob.java
--- syllabus_2-6-x_SAK-15571/syllabus-impl/src/java/org/sakaiproject/component/app/syllabus/FixPublicSyllabusAttachmentsJob.java 1969-12-31 17:00:00.000000000 -0700
+++ syllabus_2-6-x_SAK-15793/syllabus-impl/src/java/org/sakaiproject/component/app/syllabus/FixPublicSyllabusAttachmentsJob.java 2009-04-09 13:50:03.000000000 -0700
@@ -0,0 +1,93 @@
+/**********************************************************************************
+ *
+ * Copyright (c) 2009 The Sakai Foundation.
+ *
+ * Licensed under the Educational Community License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.opensource.org/licenses/ecl1.php
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ **********************************************************************************/
+package org.sakaiproject.component.app.syllabus;
+
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.sakaiproject.api.app.syllabus.SyllabusData;
+import org.sakaiproject.api.app.syllabus.SyllabusManager;
+import org.sakaiproject.authz.cover.AuthzGroupService;
+import org.sakaiproject.event.cover.EventTrackingService;
+import org.sakaiproject.event.cover.UsageSessionService;
+import org.sakaiproject.tool.api.Session;
+import org.sakaiproject.tool.cover.SessionManager;
+
+
+public class FixPublicSyllabusAttachmentsJob implements Job {
+
+ private static final Log LOG = LogFactory.getLog(FixPublicSyllabusAttachmentsJob.class);
+ private SyllabusManager syllabusManager;
+ private String userId = "admin";
+
+ public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+ loginToSakai();
+
+ Set syllabi = syllabusManager.findPublicSyllabusData();
+ if (LOG.isInfoEnabled()) {
+ LOG.info("Executing FixPublicSyllabusAttachmentsJob now");
+ LOG.info("Number of public syllabus found: "+syllabi.size());
+ }
+ for (SyllabusData syllabus: syllabi) {
+ syllabusManager.updateSyllabusAttachmentsViewState(syllabus);
+ }
+
+ logoutFromSakai();
+ }
+
+ protected void loginToSakai() {
+ Session sakaiSession = SessionManager.getCurrentSession();
+ sakaiSession.setUserId(userId);
+ sakaiSession.setUserEid(userId);
+
+ // establish the user's session
+ UsageSessionService.startSession(userId, "127.0.0.1", FixPublicSyllabusAttachmentsJob.class.getName());
+
+ // update the user's externally provided realm definitions
+ AuthzGroupService.refreshUser(userId);
+
+ // post the login event
+ EventTrackingService.post(EventTrackingService.newEvent(UsageSessionService.EVENT_LOGIN, null, true));
+ }
+
+ protected void logoutFromSakai() {
+ // post the logout event
+ EventTrackingService.post(EventTrackingService.newEvent(UsageSessionService.EVENT_LOGOUT, null, true));
+ }
+
+ public SyllabusManager getSyllabusManager() {
+ return syllabusManager;
+ }
+
+ public void setSyllabusManager(SyllabusManager syllabusManager) {
+ this.syllabusManager = syllabusManager;
+ }
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+}
+
diff -uNr syllabus_2-6-x_SAK-15571/syllabus-impl/src/java/org/sakaiproject/component/app/syllabus/SyllabusManagerImpl.java syllabus_2-6-x_SAK-15793/syllabus-impl/src/java/org/sakaiproject/component/app/syllabus/SyllabusManagerImpl.java
--- syllabus_2-6-x_SAK-15571/syllabus-impl/src/java/org/sakaiproject/component/app/syllabus/SyllabusManagerImpl.java 2009-04-09 14:51:59.000000000 -0700
+++ syllabus_2-6-x_SAK-15793/syllabus-impl/src/java/org/sakaiproject/component/app/syllabus/SyllabusManagerImpl.java 2009-04-09 13:53:39.000000000 -0700
@@ -21,6 +21,7 @@
package org.sakaiproject.component.app.syllabus;
import java.sql.SQLException;
+import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
@@ -60,6 +61,7 @@
private static final String USER_ID = "userId";
private static final String CONTEXT_ID = "contextId";
private static final String SURROGATE_KEY = "surrogateKey";
+ private static final String VIEW = "view";
private static final String SYLLABI = "syllabi";
private static final String FOREIGN_KEY = "foreignKey";
private static final String QUERY_BY_SYLLABUSDATAID = "findSyllabusDataByDataIds";
@@ -268,6 +270,23 @@
return (SyllabusItem) getHibernateTemplate().execute(hcb);
}
+
+ @SuppressWarnings("unchecked")
+ public Set findPublicSyllabusData() {
+ HibernateCallback hcb = new HibernateCallback()
+ {
+ public Object doInHibernate(Session session) throws HibernateException,
+ SQLException
+ {
+ Criteria crit = session.createCriteria(SyllabusDataImpl.class)
+ .add(Expression.eq(VIEW, "yes"))
+ .setFetchMode(ATTACHMENTS, FetchMode.EAGER);
+
+ return crit.list();
+ }
+ };
+ return new HashSet(getHibernateTemplate().executeFind(hcb));
+ }
/**
* getSyllabusItemByUserAndContextIds finds a SyllabusItem
@@ -368,7 +387,7 @@
*
* @param syllabusData the SyllabusData object to check for publicness
*/
- private void updateSyllabusAttachmentsViewState(final SyllabusData syllabusData)
+ public void updateSyllabusAttachmentsViewState(final SyllabusData syllabusData)
{
boolean publicView = "yes".equalsIgnoreCase(syllabusData.getView());
Set> attachments = syllabusData.getAttachments();