Index: lams_admin/conf/language/lams/ApplicationResources.properties
===================================================================
RCS file: /usr/local/cvsroot/lams_admin/conf/language/lams/ApplicationResources.properties,v
diff -u -r1.52.2.2 -r1.52.2.3
--- lams_admin/conf/language/lams/ApplicationResources.properties 17 Apr 2009 07:10:52 -0000 1.52.2.2
+++ lams_admin/conf/language/lams/ApplicationResources.properties 3 Jun 2009 06:36:50 -0000 1.52.2.3
@@ -384,6 +384,7 @@
config.red5.recordings.url =Media Server Recordings URL
admin.gradebook.learner.enable =Enable Gradebook for Learners
admin.gradebook.monitor.enable =Enable Gradebook for Monitors
+sysadmin.serverUrl =External Server URL
#======= End labels: Exported 377 labels for en AU =====
Index: lams_admin/conf/language/lams/ApplicationResources_en_AU.properties
===================================================================
RCS file: /usr/local/cvsroot/lams_admin/conf/language/lams/ApplicationResources_en_AU.properties,v
diff -u -r1.52.2.2 -r1.52.2.3
--- lams_admin/conf/language/lams/ApplicationResources_en_AU.properties 17 Apr 2009 07:10:52 -0000 1.52.2.2
+++ lams_admin/conf/language/lams/ApplicationResources_en_AU.properties 3 Jun 2009 06:36:50 -0000 1.52.2.3
@@ -384,6 +384,6 @@
config.red5.recordings.url =Media Server Recordings URL
admin.gradebook.learner.enable =Enable Gradebook for Learners
admin.gradebook.monitor.enable =Enable Gradebook for Monitors
+sysadmin.serverUrl =External Server URL
-
#======= End labels: Exported 377 labels for en AU =====
Index: lams_admin/conf/xdoclet/struts-forms.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_admin/conf/xdoclet/struts-forms.xml,v
diff -u -r1.31 -r1.31.2.1
--- lams_admin/conf/xdoclet/struts-forms.xml 9 Apr 2009 00:08:35 -0000 1.31
+++ lams_admin/conf/xdoclet/struts-forms.xml 3 Jun 2009 06:36:50 -0000 1.31.2.1
@@ -71,6 +71,7 @@
+
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/ServerSaveAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/web/ServerSaveAction.java,v
diff -u -r1.6 -r1.6.6.1
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/ServerSaveAction.java 12 Dec 2007 05:40:46 -0000 1.6
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/ServerSaveAction.java 3 Jun 2009 06:36:50 -0000 1.6.6.1
@@ -69,104 +69,111 @@
*/
public class ServerSaveAction extends Action {
- private static IIntegrationService service;
- private static IUserManagementService userService;
- private static MessageService messageService;
+ private static IIntegrationService service;
+ private static IUserManagementService userService;
+ private static MessageService messageService;
- @SuppressWarnings("unchecked")
- public ActionForward execute(ActionMapping mapping, ActionForm form,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
+ @SuppressWarnings("unchecked")
+ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
- if (isCancelled(request)) {
- return mapping.findForward("success");
- }
+ if (isCancelled(request)) {
+ return mapping.findForward("success");
+ }
- service = AdminServiceProxy.getIntegrationService(getServlet().getServletContext());
- userService = AdminServiceProxy.getService(getServlet().getServletContext());
- messageService = AdminServiceProxy.getMessageService(getServlet().getServletContext());
-
- DynaActionForm serverOrgMapForm = (DynaActionForm) form;
- ActionMessages errors = new ActionMessages();
- String[] requiredFields = { "serverid", "serverkey", "servername", "prefix", "userinfoUrl", "timeoutUrl" };
- for (String requiredField : requiredFields) {
- if (StringUtils.trimToNull(serverOrgMapForm.getString(requiredField)) == null) {
- errors.add(requiredField, new ActionMessage("error.required", messageService.getMessage("sysadmin."+requiredField)));
+ service = AdminServiceProxy.getIntegrationService(getServlet().getServletContext());
+ userService = AdminServiceProxy.getService(getServlet().getServletContext());
+ messageService = AdminServiceProxy.getMessageService(getServlet().getServletContext());
+
+ DynaActionForm serverOrgMapForm = (DynaActionForm) form;
+ ActionMessages errors = new ActionMessages();
+ String[] requiredFields = { "serverid", "serverkey", "servername", "prefix", "userinfoUrl", "timeoutUrl" };
+ for (String requiredField : requiredFields) {
+ if (StringUtils.trimToNull(serverOrgMapForm.getString(requiredField)) == null) {
+ errors.add(requiredField, new ActionMessage("error.required", messageService.getMessage("sysadmin."
+ + requiredField)));
+ }
+ }
+ Organisation org = null;
+ UserDTO user = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER);
+ if ((Boolean) serverOrgMapForm.get("newOrg")) {
+ String orgName = serverOrgMapForm.getString("orgName");
+ if (StringUtils.trimToNull(orgName) == null) {
+ errors.add("orgId", new ActionMessage("error.required", messageService
+ .getMessage("sysadmin.organisation")));
+ } else {
+ org = new Organisation();
+ org.setName(orgName);
+ org.setParentOrganisation(userService.getRootOrganisation());
+ org.setOrganisationType((OrganisationType) userService.findById(OrganisationType.class,
+ OrganisationType.COURSE_TYPE));
+ org.setOrganisationState((OrganisationState) userService.findById(OrganisationState.class,
+ OrganisationState.ACTIVE));
+ SupportedLocale locale = LanguageUtil.getDefaultLocale();
+ org.setLocale(locale);
+ userService.saveOrganisation(org, user.getUserID());
+ serverOrgMapForm.set("orgId", org.getOrganisationId());
+ serverOrgMapForm.set("newOrg", false);
+ serverOrgMapForm.set("orgName", null);
+ }
+ } else {
+ Integer orgId = (Integer) serverOrgMapForm.get("orgId");
+ if (orgId.equals(-1)) {
+ // LDEV-1284 no need for integration organisation anymore
+ // errors.add("orgId",new ActionMessage("error.required", messageService.getMessage("sysadmin.organisation")));
+ } else {
+ org = (Organisation) userService.findById(Organisation.class, orgId);
+ }
+ }
+ Integer sid = (Integer) serverOrgMapForm.get("sid");
+ if (errors.isEmpty()) {//check duplication
+ String[] uniqueFields = { "serverid", "prefix" };
+ for (String uniqueField : uniqueFields) {
+ List list = userService.findByProperty(ExtServerOrgMap.class, uniqueField, serverOrgMapForm
+ .get(uniqueField));
+ if (list != null && list.size() > 0) {
+ if (sid.equals(-1)) {//new map
+ errors.add(uniqueField, new ActionMessage("error.not.unique", messageService
+ .getMessage("sysadmin." + uniqueField)));
+ } else {
+ ExtServerOrgMap map = (ExtServerOrgMap) list.get(0);
+ if (!map.getSid().equals(sid)) {
+ errors.add(uniqueField, new ActionMessage("error.not.unique", messageService
+ .getMessage("sysadmin." + uniqueField)));
}
+ }
+
}
- Organisation org = null;
- UserDTO user = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER);
- if((Boolean)serverOrgMapForm.get("newOrg")){
- String orgName = serverOrgMapForm.getString("orgName");
- if(StringUtils.trimToNull(orgName)==null){
- errors.add("orgId",new ActionMessage("error.required", messageService.getMessage("sysadmin.organisation")));
- }else{
- org = new Organisation();
- org.setName(orgName);
- org.setParentOrganisation(userService.getRootOrganisation());
- org.setOrganisationType((OrganisationType)userService.findById(OrganisationType.class,OrganisationType.COURSE_TYPE));
- org.setOrganisationState((OrganisationState)userService.findById(OrganisationState.class,OrganisationState.ACTIVE));
- SupportedLocale locale = LanguageUtil.getDefaultLocale();
- org.setLocale(locale);
- userService.saveOrganisation(org, user.getUserID());
- serverOrgMapForm.set("orgId", org.getOrganisationId());
- serverOrgMapForm.set("newOrg", false);
- serverOrgMapForm.set("orgName", null);
- }
- }else{
- Integer orgId = (Integer)serverOrgMapForm.get("orgId");
- if(orgId.equals(-1)){
- // LDEV-1284 no need for integration organisation anymore
- // errors.add("orgId",new ActionMessage("error.required", messageService.getMessage("sysadmin.organisation")));
- }else{
- org = (Organisation)userService.findById(Organisation.class, orgId);
- }
- }
- Integer sid = (Integer) serverOrgMapForm.get("sid");
- if(errors.isEmpty()){//check duplication
- String[] uniqueFields = {"serverid","prefix"};
- for(String uniqueField : uniqueFields){
- List list = userService.findByProperty(ExtServerOrgMap.class,uniqueField,serverOrgMapForm.get(uniqueField));
- if(list!=null && list.size()>0){
- if(sid.equals(-1)){//new map
- errors.add(uniqueField, new ActionMessage("error.not.unique", messageService.getMessage("sysadmin."+uniqueField) ));
- }else{
- ExtServerOrgMap map = (ExtServerOrgMap)list.get(0);
- if(!map.getSid().equals(sid)){
- errors.add(uniqueField, new ActionMessage("error.not.unique", messageService.getMessage("sysadmin."+uniqueField) ));
- }
- }
-
- }
- }
- }
- if (errors.isEmpty()) {
- ExtServerOrgMap map = null;
- if (sid.equals(-1)) {
- map = new ExtServerOrgMap();
- BeanUtils.copyProperties(map, serverOrgMapForm);
- map.setSid(null);
- } else {
- map = service.getExtServerOrgMap(sid);
- BeanUtils.copyProperties(map, serverOrgMapForm);
- }
- map.setOrganisation(org);
- service.saveExtServerOrgMap(map);
- return mapping.findForward("success");
- } else {
- saveErrors(request, errors);
- Map properties = new HashMap();
- properties.put("organisationType.organisationTypeId", OrganisationType.COURSE_TYPE);
- properties.put("organisationState.organisationStateId", OrganisationState.ACTIVE);
- List list = userService.findByProperties(Organisation.class, properties);
- Organisation dummy = new Organisation();
- dummy.setOrganisationId(-1);
- dummy.setName(messageService.getMessage("sysadmin.organisation.select"));
- if(list == null){
- list = new ArrayList();
- }
- list.add(dummy);
- request.setAttribute("orgs", list);
- return mapping.getInputForward();
- }
+ }
}
+ if (errors.isEmpty()) {
+ ExtServerOrgMap map = null;
+ if (sid.equals(-1)) {
+ map = new ExtServerOrgMap();
+ BeanUtils.copyProperties(map, serverOrgMapForm);
+ map.setSid(null);
+ } else {
+ map = service.getExtServerOrgMap(sid);
+ BeanUtils.copyProperties(map, serverOrgMapForm);
+ }
+ map.setOrganisation(org);
+ service.saveExtServerOrgMap(map);
+ return mapping.findForward("success");
+ } else {
+ saveErrors(request, errors);
+ Map properties = new HashMap();
+ properties.put("organisationType.organisationTypeId", OrganisationType.COURSE_TYPE);
+ properties.put("organisationState.organisationStateId", OrganisationState.ACTIVE);
+ List list = userService.findByProperties(Organisation.class, properties);
+ Organisation dummy = new Organisation();
+ dummy.setOrganisationId(-1);
+ dummy.setName(messageService.getMessage("sysadmin.organisation.select"));
+ if (list == null) {
+ list = new ArrayList();
+ }
+ list.add(dummy);
+ request.setAttribute("orgs", list);
+ return mapping.getInputForward();
+ }
+ }
}
Index: lams_admin/web/servermaintain.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_admin/web/servermaintain.jsp,v
diff -u -r1.9 -r1.9.6.1
--- lams_admin/web/servermaintain.jsp 11 Jan 2008 04:34:47 -0000 1.9
+++ lams_admin/web/servermaintain.jsp 3 Jun 2009 06:36:50 -0000 1.9.6.1
@@ -51,6 +51,10 @@
* |
+ : |
+ |
+
+
: |
* |
Index: lams_admin/web/WEB-INF/struts/struts-config.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_admin/web/WEB-INF/struts/Attic/struts-config.xml,v
diff -u -r1.24 -r1.24.2.1
--- lams_admin/web/WEB-INF/struts/struts-config.xml 9 Apr 2009 00:08:35 -0000 1.24
+++ lams_admin/web/WEB-INF/struts/struts-config.xml 3 Jun 2009 06:36:50 -0000 1.24.2.1
@@ -115,6 +115,7 @@
+
Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/integration/ExtServerOrgMap.hbm.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/integration/Attic/ExtServerOrgMap.hbm.xml,v
diff -u -r1.4 -r1.4.6.1
--- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/integration/ExtServerOrgMap.hbm.xml 12 Dec 2007 05:40:47 -0000 1.4
+++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/integration/ExtServerOrgMap.hbm.xml 3 Jun 2009 06:36:29 -0000 1.4.6.1
@@ -127,6 +127,20 @@
+
+ @hibernate.property
+ column="server_url"
+ length="255"
+ not-null="false"
+
+
+
+
+
+
+
+
+
Index: lams_common/db/sql/create_integration_tables.sql
===================================================================
RCS file: /usr/local/cvsroot/lams_common/db/sql/create_integration_tables.sql,v
diff -u -r1.3 -r1.3.6.1
--- lams_common/db/sql/create_integration_tables.sql 12 Dec 2007 05:50:18 -0000 1.3
+++ lams_common/db/sql/create_integration_tables.sql 3 Jun 2009 06:36:29 -0000 1.3.6.1
@@ -10,6 +10,7 @@
`serverdesc` text,
`prefix` varchar(11) NOT NULL,
`userinfo_url` text NOT NULL,
+ `server_url` varchar(255),
`timeout_url` text NOT NULL,
`disabled` bit(1) NOT NULL,
`orgid` bigint(20),
@@ -51,4 +52,18 @@
KEY `ext_server_org_map_id` (`ext_server_org_map_id`),
CONSTRAINT `lams_ext_user_userid_map_fk1` FOREIGN KEY (`ext_server_org_map_id`) REFERENCES `lams_ext_server_org_map` (`sid`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `lams_ext_user_userid_map_fk` FOREIGN KEY (`user_id`) REFERENCES `lams_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
-) TYPE=InnoDB;
\ No newline at end of file
+) TYPE=InnoDB;
+
+--
+-- Table structure for table `lams_ext_server_tool_map`
+--
+DROP TABLE IF EXISTS lams_ext_server_tool_map;
+CREATE TABLE lams_ext_server_tool_map (
+ uid BIGINT(20) NOT NULL auto_increment,
+ tool_id BIGINT(20) NOT NULL,
+ ext_server_org_map_id int(11) NOT NULL,
+ PRIMARY KEY (uid),
+ UNIQUE KEY unique_adapter_map (ext_server_org_map_id, tool_id),
+ CONSTRAINT lams_ext_server_tool_map_fk1 FOREIGN KEY (ext_server_org_map_id) REFERENCES lams_ext_server_org_map (sid) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT lams_ext_server_tool_map_fk2 FOREIGN KEY (tool_id) REFERENCES lams_tool (tool_id) ON DELETE CASCADE ON UPDATE CASCADE
+) TYPE=InnoDB;
Index: lams_common/db/sql/insert_types_data.sql
===================================================================
RCS file: /usr/local/cvsroot/lams_common/db/sql/insert_types_data.sql,v
diff -u -r1.85.4.2 -r1.85.4.3
--- lams_common/db/sql/insert_types_data.sql 30 Apr 2009 05:46:55 -0000 1.85.4.2
+++ lams_common/db/sql/insert_types_data.sql 3 Jun 2009 06:36:28 -0000 1.85.4.3
@@ -306,7 +306,7 @@
-- external server mapping to a lams organisation
INSERT INTO lams_ext_server_org_map VALUES
- (1,'moodle','moodle','moodle','moodle','mdl','http://localhost/moodle/mod/lamstwo/userinfo.php?ts=%timestamp%&un=%username%&hs=%hash%','http://dummy','\0',7);
+ (1,'moodle','moodle','moodle','moodle','mdl','http://localhost/moodle/mod/lamstwo/userinfo.php?ts=%timestamp%&un=%username%&hs=%hash%', '', 'http://dummy','\0',7);
-- initialise db version
INSERT INTO patches VALUES ('lams', 16, NOW(), 'F');
\ No newline at end of file
Index: lams_common/src/java/org/lamsfoundation/lams/commonContext.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/commonContext.xml,v
diff -u -r1.79.2.2 -r1.79.2.3
--- lams_common/src/java/org/lamsfoundation/lams/commonContext.xml 20 Apr 2009 04:13:32 -0000 1.79.2.2
+++ lams_common/src/java/org/lamsfoundation/lams/commonContext.xml 3 Jun 2009 06:36:29 -0000 1.79.2.3
@@ -85,6 +85,7 @@
classpath:org/lamsfoundation/lams/integration/ExtServerOrgMap.hbm.xml
classpath:org/lamsfoundation/lams/integration/ExtCourseClassMap.hbm.xml
classpath:org/lamsfoundation/lams/integration/ExtUserUseridMap.hbm.xml
+ classpath:org/lamsfoundation/lams/integration/ExtServerToolAdapterMap.hbm.xml
classpath:org/lamsfoundation/lams/planner/PedagogicalPlannerSequenceNode.hbm.xml
Index: lams_common/src/java/org/lamsfoundation/lams/dao/hibernate/BaseDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/dao/hibernate/BaseDAO.java,v
diff -u -r1.11 -r1.11.16.1
--- lams_common/src/java/org/lamsfoundation/lams/dao/hibernate/BaseDAO.java 25 Sep 2006 06:11:05 -0000 1.11
+++ lams_common/src/java/org/lamsfoundation/lams/dao/hibernate/BaseDAO.java 3 Jun 2009 06:36:29 -0000 1.11.16.1
@@ -220,6 +220,7 @@
*/
public List findByProperties(Class clazz, Map properties) {
Qv qv = buildQueryString(clazz,properties,SELECT,EQUAL_TO_WHAT);
+ log.debug(qv.queryString);
return getHibernateTemplate().find(qv.queryString,qv.values);
}
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_common/src/java/org/lamsfoundation/lams/dbupdates/Patch0017_updateFrom23-231.sql'.
Fisheye: No comparison available. Pass `N' to diff?
Index: lams_common/src/java/org/lamsfoundation/lams/integration/ExtServerOrgMap.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/integration/Attic/ExtServerOrgMap.java,v
diff -u -r1.3 -r1.3.16.1
--- lams_common/src/java/org/lamsfoundation/lams/integration/ExtServerOrgMap.java 13 Oct 2006 00:16:42 -0000 1.3
+++ lams_common/src/java/org/lamsfoundation/lams/integration/ExtServerOrgMap.java 3 Jun 2009 06:36:29 -0000 1.3.16.1
@@ -5,17 +5,15 @@
import org.apache.commons.lang.builder.ToStringBuilder;
import org.lamsfoundation.lams.usermanagement.Organisation;
-
-/**
- * @hibernate.class
- * table="lams_ext_server_org_map"
- *
-*/
+/**
+ * @hibernate.class table="lams_ext_server_org_map"
+ *
+ */
public class ExtServerOrgMap implements Serializable, Comparable {
- private static final long serialVersionUID = 337894825609071182L;
+ private static final long serialVersionUID = 337894825609071182L;
- /** identifier field */
+ /** identifier field */
private Integer sid;
/** persistent field */
@@ -27,14 +25,17 @@
/** persistent field */
private String servername;
- /** nullable persistent field */
+ /** persistent field */
private String serverdesc;
/** persistent field */
private String prefix;
/** persistent field */
private String userinfoUrl;
+
+ /** persistent field */
+ private String serverUrl;
/** persistent field */
private String timeoutUrl;
@@ -52,238 +53,214 @@
private Set extUserUseridMaps;
/** full constructor */
- public ExtServerOrgMap(String serverid, String serverkey, String servername, String serverdesc, String prefix, String userinfoUrl, String timeoutUrl, Boolean disabled, Organisation organisation, Set extCourseClassMaps, Set extUserUseridMaps) {
- this.serverid = serverid;
- this.serverkey = serverkey;
- this.servername = servername;
- this.serverdesc = serverdesc;
- this.prefix = prefix;
- this.userinfoUrl = userinfoUrl;
- this.timeoutUrl = timeoutUrl;
- this.disabled = disabled;
- this.organisation = organisation;
- this.extCourseClassMaps = extCourseClassMaps;
- this.extUserUseridMaps = extUserUseridMaps;
+ public ExtServerOrgMap(String serverid, String serverkey, String servername, String serverdesc, String prefix,
+ String userinfoUrl, String serverUrl, String timeoutUrl, Boolean disabled, Organisation organisation, Set extCourseClassMaps,
+ Set extUserUseridMaps) {
+ this.serverid = serverid;
+ this.serverkey = serverkey;
+ this.servername = servername;
+ this.serverdesc = serverdesc;
+ this.prefix = prefix;
+ this.userinfoUrl = userinfoUrl;
+ this.serverUrl = serverUrl;
+ this.timeoutUrl = timeoutUrl;
+ this.disabled = disabled;
+ this.organisation = organisation;
+ this.extCourseClassMaps = extCourseClassMaps;
+ this.extUserUseridMaps = extUserUseridMaps;
}
/** default constructor */
public ExtServerOrgMap() {
}
/** minimal constructor */
- public ExtServerOrgMap(String serverid, String serverkey, String servername, String prefix, String userinfoUrl, String timeoutUrl, Boolean disabled, Organisation organisation, Set extCourseClassMaps, Set extUserUseridMaps) {
- this.serverid = serverid;
- this.serverkey = serverkey;
- this.servername = servername;
- this.prefix = prefix;
- this.userinfoUrl = userinfoUrl;
- this.timeoutUrl = timeoutUrl;
- this.disabled = disabled;
- this.organisation = organisation;
- this.extCourseClassMaps = extCourseClassMaps;
- this.extUserUseridMaps = extUserUseridMaps;
+ public ExtServerOrgMap(String serverid, String serverkey, String servername, String prefix, String userinfoUrl,
+ String timeoutUrl, Boolean disabled, Organisation organisation, Set extCourseClassMaps,
+ Set extUserUseridMaps) {
+ this.serverid = serverid;
+ this.serverkey = serverkey;
+ this.servername = servername;
+ this.prefix = prefix;
+ this.userinfoUrl = userinfoUrl;
+ this.timeoutUrl = timeoutUrl;
+ this.disabled = disabled;
+ this.organisation = organisation;
+ this.extCourseClassMaps = extCourseClassMaps;
+ this.extUserUseridMaps = extUserUseridMaps;
}
- /**
- * @hibernate.id
- * generator-class="native"
- * type="java.lang.Integer"
- * column="sid"
- *
+ /**
+ * @hibernate.id generator-class="native" type="java.lang.Integer"
+ * column="sid"
+ *
*/
public Integer getSid() {
- return this.sid;
+ return this.sid;
}
public void setSid(Integer sid) {
- this.sid = sid;
+ this.sid = sid;
}
- /**
- * @hibernate.property
- * column="serverid"
- * unique="true"
- * length="255"
- * not-null="true"
- *
+ /**
+ * @hibernate.property column="serverid" unique="true" length="255"
+ * not-null="true"
+ *
*/
public String getServerid() {
- return this.serverid;
+ return this.serverid;
}
public void setServerid(String serverid) {
- this.serverid = serverid;
+ this.serverid = serverid;
}
- /**
- * @hibernate.property
- * column="serverkey"
- * length="65535"
- * not-null="true"
- *
+ /**
+ * @hibernate.property column="serverkey" length="65535" not-null="true"
+ *
*/
public String getServerkey() {
- return this.serverkey;
+ return this.serverkey;
}
public void setServerkey(String serverkey) {
- this.serverkey = serverkey;
+ this.serverkey = serverkey;
}
- /**
- * @hibernate.property
- * column="servername"
- * length="255"
- * not-null="true"
- *
+ /**
+ * @hibernate.property column="servername" length="255" not-null="true"
+ *
*/
public String getServername() {
- return this.servername;
+ return this.servername;
}
public void setServername(String servername) {
- this.servername = servername;
+ this.servername = servername;
}
- /**
- * @hibernate.property
- * column="serverdesc"
- * length="65535"
- *
+ /**
+ * @hibernate.property column="serverdesc" length="65535"
+ *
*/
public String getServerdesc() {
- return this.serverdesc;
+ return this.serverdesc;
}
public void setServerdesc(String serverdesc) {
- this.serverdesc = serverdesc;
+ this.serverdesc = serverdesc;
}
- /**
- * @hibernate.property
- * column="prefix"
- * unique="true"
- * length="11"
- * not-null="true"
- *
+ /**
+ * @hibernate.property column="prefix" unique="true" length="11"
+ * not-null="true"
+ *
*/
public String getPrefix() {
- return this.prefix;
+ return this.prefix;
}
public void setPrefix(String prefix) {
- this.prefix = prefix;
+ this.prefix = prefix;
}
- /**
- * @hibernate.property
- * column="userinfo_url"
- * length="65535"
- * not-null="true"
- *
+ /**
+ * @hibernate.property column="userinfo_url" length="65535" not-null="true"
+ *
*/
public String getUserinfoUrl() {
- return this.userinfoUrl;
+ return this.userinfoUrl;
}
-
+
public void setUserinfoUrl(String userinfoUrl) {
- this.userinfoUrl = userinfoUrl;
+ this.userinfoUrl = userinfoUrl;
}
+
+ /**
+ * @hibernate.property column="server_url" length="255" not-null="false"
+ *
+ */
+ public String getServerUrl() {
+ return this.serverUrl;
+ }
- /**
- * @hibernate.property
- * column="timeout_url"
- * length="65535"
- * not-null="true"
- *
+ public void setServerUrl(String serverUrl) {
+ this.serverUrl = serverUrl;
+ }
+
+ /**
+ * @hibernate.property column="timeout_url" length="65535" not-null="true"
+ *
*/
public String getTimeoutUrl() {
- return this.timeoutUrl;
+ return this.timeoutUrl;
}
public void setTimeoutUrl(String timeoutUrl) {
- this.timeoutUrl = timeoutUrl;
+ this.timeoutUrl = timeoutUrl;
}
- /**
- * @hibernate.property
- * column="disabled"
- * length="1"
- * not-null="true"
- *
+ /**
+ * @hibernate.property column="disabled" length="1" not-null="true"
+ *
*/
public Boolean getDisabled() {
- return this.disabled;
+ return this.disabled;
}
public void setDisabled(Boolean disabled) {
- this.disabled = disabled;
+ this.disabled = disabled;
}
- /**
- * @hibernate.many-to-one
- * not-null="true"
- * @hibernate.column name="orgid"
- * lazy="true"
- *
+ /**
+ * @hibernate.many-to-one not-null="true"
+ * @hibernate.column name="orgid" lazy="true"
+ *
*/
public Organisation getOrganisation() {
- return this.organisation;
+ return this.organisation;
}
public void setOrganisation(Organisation organisation) {
- this.organisation = organisation;
+ this.organisation = organisation;
}
- /**
- * @hibernate.set
- * lazy="true"
- * inverse="true"
- * cascade="none"
- * @hibernate.collection-key
- * column="ext_server_org_map_id"
- * @hibernate.collection-one-to-many
- * class="org.lamsfoundation.lams.integration.ExtCourseClassMap"
- *
+ /**
+ * @hibernate.set lazy="true" inverse="true" cascade="none"
+ * @hibernate.collection-key column="ext_server_org_map_id"
+ * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.integration.ExtCourseClassMap"
+ *
*/
public Set getExtCourseClassMaps() {
- return this.extCourseClassMaps;
+ return this.extCourseClassMaps;
}
public void setExtCourseClassMaps(Set extCourseClassMaps) {
- this.extCourseClassMaps = extCourseClassMaps;
+ this.extCourseClassMaps = extCourseClassMaps;
}
- /**
- * @hibernate.set
- * lazy="true"
- * inverse="true"
- * cascade="none"
- * @hibernate.collection-key
- * column="ext_server_org_map_id"
- * @hibernate.collection-one-to-many
- * class="org.lamsfoundation.lams.integration.ExtUserUseridMap"
- *
+ /**
+ * @hibernate.set lazy="true" inverse="true" cascade="none"
+ * @hibernate.collection-key column="ext_server_org_map_id"
+ * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.integration.ExtUserUseridMap"
+ *
*/
public Set getExtUserUseridMaps() {
- return this.extUserUseridMaps;
+ return this.extUserUseridMaps;
}
public void setExtUserUseridMaps(Set extUserUseridMaps) {
- this.extUserUseridMaps = extUserUseridMaps;
+ this.extUserUseridMaps = extUserUseridMaps;
}
public String toString() {
- return new ToStringBuilder(this)
- .append("sid", getSid())
- .append("serverid", getServerid())
- .append("serverkey", getServerkey())
- .append("servername", getServername())
- .toString();
+ return new ToStringBuilder(this).append("sid", getSid()).append("serverid", getServerid()).append("serverkey",
+ getServerkey()).append("servername", getServername()).toString();
}
- public int compareTo(Object o) {
- return serverid.compareToIgnoreCase(((ExtServerOrgMap)o).getServerid());
- }
+ public int compareTo(Object o) {
+ return serverid.compareToIgnoreCase(((ExtServerOrgMap) o).getServerid());
+ }
}
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_common/src/java/org/lamsfoundation/lams/integration/ExtServerToolAdapterMap.java'.
Fisheye: No comparison available. Pass `N' to diff?
Index: lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java,v
diff -u -r1.8 -r1.8.6.1
--- lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java 17 Sep 2008 07:08:18 -0000 1.8
+++ lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java 3 Jun 2009 06:36:29 -0000 1.8.6.1
@@ -27,6 +27,7 @@
import org.lamsfoundation.lams.integration.ExtCourseClassMap;
import org.lamsfoundation.lams.integration.ExtServerOrgMap;
+import org.lamsfoundation.lams.integration.ExtServerToolAdapterMap;
import org.lamsfoundation.lams.integration.ExtUserUseridMap;
import org.lamsfoundation.lams.integration.UserInfoFetchException;
@@ -77,4 +78,12 @@
void saveExtServerOrgMap(ExtServerOrgMap map);
String hash(ExtServerOrgMap serverMap, String extUsername, String timestamp);
+
+ List getMappedServers(String toolSig);
+
+ ExtServerToolAdapterMap getMappedServer(String serverId, String toolSig);
+
+ void saveExtServerToolAdapterMap(ExtServerToolAdapterMap map);
+
+ void deleteExtServerToolAdapterMap(ExtServerToolAdapterMap map);
}
Index: lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java,v
diff -u -r1.18 -r1.18.6.1
--- lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java 17 Sep 2008 07:08:18 -0000 1.18
+++ lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java 3 Jun 2009 06:36:29 -0000 1.18.6.1
@@ -43,6 +43,7 @@
import org.apache.log4j.Logger;
import org.lamsfoundation.lams.integration.ExtCourseClassMap;
import org.lamsfoundation.lams.integration.ExtServerOrgMap;
+import org.lamsfoundation.lams.integration.ExtServerToolAdapterMap;
import org.lamsfoundation.lams.integration.ExtUserUseridMap;
import org.lamsfoundation.lams.integration.UserInfoFetchException;
import org.lamsfoundation.lams.integration.security.RandomPasswordGenerator;
@@ -63,338 +64,344 @@
*
* View Source
*
- *
+ *
* @author Fei Yang
*/
-public class IntegrationService implements IIntegrationService{
-
- private static Logger log = Logger.getLogger(IntegrationService.class);
-
- private IUserManagementService service;
-
- public IUserManagementService getService() {
- return service;
+public class IntegrationService implements IIntegrationService {
+
+ private static Logger log = Logger.getLogger(IntegrationService.class);
+
+ private IUserManagementService service;
+
+ public IUserManagementService getService() {
+ return service;
+ }
+
+ public void setService(IUserManagementService service) {
+ this.service = service;
+ }
+
+ public ExtServerOrgMap getExtServerOrgMap(String serverId) {
+ List list = service.findByProperty(ExtServerOrgMap.class, "serverid", serverId);
+ if (list == null || list.size() == 0) {
+ return null;
+ } else {
+ return (ExtServerOrgMap) list.get(0);
}
+ }
- public void setService(IUserManagementService service) {
- this.service = service;
+ // wrapper method for compatibility with original integration modules
+ public ExtCourseClassMap getExtCourseClassMap(ExtServerOrgMap serverMap, ExtUserUseridMap userMap,
+ String extCourseId, String countryIsoCode, String langIsoCode, String prettyCourseName) {
+
+ // Set the pretty course name if available, otherwise maintain the extCourseId
+ String courseName = "";
+ if (prettyCourseName != null) {
+ courseName = prettyCourseName;
+ } else {
+ courseName = extCourseId;
}
- public ExtServerOrgMap getExtServerOrgMap(String serverId) {
- List list = service.findByProperty(ExtServerOrgMap.class, "serverid", serverId);
- if(list==null || list.size()==0){
- return null;
- }else{
- return (ExtServerOrgMap)list.get(0);
- }
+ return getExtCourseClassMap(serverMap, userMap, extCourseId, courseName, countryIsoCode, langIsoCode, service
+ .getRootOrganisation().getOrganisationId().toString(), true, true);
+ }
+
+ // newer method which accepts course name, a parent org id, a flag for whether user should get
+ // 'teacher' roles, and a flag for whether to use a prefix in the org's name
+ public ExtCourseClassMap getExtCourseClassMap(ExtServerOrgMap serverMap, ExtUserUseridMap userMap,
+ String extCourseId, String extCourseName, String countryIsoCode, String langIsoCode, String parentOrgId,
+ Boolean isTeacher, Boolean prefix) {
+ Map properties = new HashMap();
+ properties.put("courseid", extCourseId);
+ properties.put("extServerOrgMap.sid", serverMap.getSid());
+ List list = service.findByProperties(ExtCourseClassMap.class, properties);
+ if (list == null || list.size() == 0) {
+ return createExtCourseClassMap(serverMap, userMap.getUser(), extCourseId, extCourseName, countryIsoCode,
+ langIsoCode, parentOrgId, isTeacher, prefix);
+ } else {
+ ExtCourseClassMap map = (ExtCourseClassMap) list.get(0);
+ User user = userMap.getUser();
+ Organisation org = map.getOrganisation();
+
+ // update external course name if if has changed
+ if (extCourseName != null && !org.getName().equals(buildName(serverMap.getPrefix(), extCourseName))) {
+ org.setName(buildName(serverMap.getPrefix(), extCourseName));
+ service.updateOrganisationandWorkspaceNames(org);
+ }
+ if (service.getUserOrganisation(user.getUserId(), org.getOrganisationId()) == null) {
+ addMemberships(user, org, isTeacher);
+ }
+ return map;
}
-
- // wrapper method for compatibility with original integration modules
- public ExtCourseClassMap getExtCourseClassMap(ExtServerOrgMap serverMap, ExtUserUseridMap userMap,
- String extCourseId, String countryIsoCode, String langIsoCode, String prettyCourseName){
-
- // Set the pretty course name if available, otherwise maintain the extCourseId
- String courseName = "";
- if (prettyCourseName != null)
- {
- courseName = prettyCourseName;
- }
- else
- {
- courseName = extCourseId;
- }
-
- return getExtCourseClassMap(serverMap, userMap,
- extCourseId, courseName, countryIsoCode, langIsoCode,
- service.getRootOrganisation().getOrganisationId().toString(), true, true);
+ }
+
+ private void addMemberships(User user, Organisation org, Boolean isTeacher) {
+ UserOrganisation uo = new UserOrganisation(user, org);
+ service.save(uo);
+ Integer[] roles;
+ if (isTeacher) {
+ roles = new Integer[] { Role.ROLE_AUTHOR, Role.ROLE_MONITOR, Role.ROLE_LEARNER };
+ } else {
+ roles = new Integer[] { Role.ROLE_LEARNER };
}
-
- // newer method which accepts course name, a parent org id, a flag for whether user should get
- // 'teacher' roles, and a flag for whether to use a prefix in the org's name
- public ExtCourseClassMap getExtCourseClassMap(ExtServerOrgMap serverMap, ExtUserUseridMap userMap,
- String extCourseId, String extCourseName, String countryIsoCode, String langIsoCode,
- String parentOrgId, Boolean isTeacher, Boolean prefix){
- Map properties = new HashMap();
- properties.put("courseid", extCourseId);
- properties.put("extServerOrgMap.sid", serverMap.getSid());
- List list = service.findByProperties(ExtCourseClassMap.class, properties);
- if(list==null || list.size()==0){
- return createExtCourseClassMap(serverMap, userMap.getUser(),
- extCourseId, extCourseName, countryIsoCode, langIsoCode, parentOrgId, isTeacher, prefix);
- }else{
- ExtCourseClassMap map = (ExtCourseClassMap)list.get(0);
- User user = userMap.getUser();
- Organisation org = map.getOrganisation();
-
- // update external course name if if has changed
- if (extCourseName != null && !org.getName().equals(buildName(serverMap.getPrefix(), extCourseName)))
- {
- org.setName(buildName(serverMap.getPrefix(), extCourseName));
- service.updateOrganisationandWorkspaceNames(org);
- }
- if(service.getUserOrganisation(user.getUserId(), org.getOrganisationId())==null){
- addMemberships(user, org, isTeacher);
- }
- return map;
- }
+ for (Integer roleId : roles) {
+ UserOrganisationRole uor = new UserOrganisationRole(uo, (Role) service.findById(Role.class, roleId));
+ service.save(uor);
+ uo.addUserOrganisationRole(uor);
}
-
- private void addMemberships(User user, Organisation org, Boolean isTeacher){
- UserOrganisation uo = new UserOrganisation(user,org);
- service.save(uo);
- Integer[] roles;
- if (isTeacher) {
- roles = new Integer[] { Role.ROLE_AUTHOR, Role.ROLE_MONITOR, Role.ROLE_LEARNER };
- } else {
- roles = new Integer[] { Role.ROLE_LEARNER };
- }
- for(Integer roleId:roles){
- UserOrganisationRole uor = new UserOrganisationRole(uo,(Role)service.findById(Role.class,roleId));
- service.save(uor);
- uo.addUserOrganisationRole(uor);
- }
- user.addUserOrganisation(uo);
- service.save(user);
+ user.addUserOrganisation(uo);
+ service.save(user);
+ }
+
+ public ExtUserUseridMap getExtUserUseridMap(ExtServerOrgMap serverMap, String extUsername)
+ throws UserInfoFetchException {
+ Map properties = new HashMap();
+ properties.put("extServerOrgMap.sid", serverMap.getSid());
+ properties.put("extUsername", extUsername);
+ List list = service.findByProperties(ExtUserUseridMap.class, properties);
+ if (list == null || list.size() == 0) {
+ return createExtUserUseridMap(serverMap, extUsername);
+ } else {
+ return (ExtUserUseridMap) list.get(0);
}
+ }
- public ExtUserUseridMap getExtUserUseridMap(
- ExtServerOrgMap serverMap,
- String extUsername)
- throws UserInfoFetchException
- {
- Map properties = new HashMap();
- properties.put("extServerOrgMap.sid", serverMap.getSid());
- properties.put("extUsername", extUsername);
- List list = service.findByProperties(ExtUserUseridMap.class, properties);
- if(list==null || list.size()==0){
- return createExtUserUseridMap(serverMap, extUsername);
- }else{
- return (ExtUserUseridMap)list.get(0);
- }
+ public ExtUserUseridMap getExistingExtUserUseridMap(ExtServerOrgMap serverMap, String extUsername)
+ throws UserInfoFetchException {
+ Map properties = new HashMap();
+ properties.put("extServerOrgMap.sid", serverMap.getSid());
+ properties.put("extUsername", extUsername);
+ List list = service.findByProperties(ExtUserUseridMap.class, properties);
+ if (list == null || list.size() == 0) {
+ return null;
+ } else {
+ return (ExtUserUseridMap) list.get(0);
}
-
- public ExtUserUseridMap getExistingExtUserUseridMap(
- ExtServerOrgMap serverMap,
- String extUsername)
- throws UserInfoFetchException
- {
- Map properties = new HashMap();
- properties.put("extServerOrgMap.sid", serverMap.getSid());
- properties.put("extUsername", extUsername);
- List list = service.findByProperties(ExtUserUseridMap.class, properties);
- if(list==null || list.size()==0){
- return null;
- }else{
- return (ExtUserUseridMap)list.get(0);
- }
+ }
+
+ public ExtUserUseridMap getImplicitExtUserUseridMap(ExtServerOrgMap serverMap, String extUsername, String password,
+ String firstName, String lastName, String email) throws UserInfoFetchException {
+ Map properties = new HashMap();
+ properties.put("extServerOrgMap.sid", serverMap.getSid());
+ properties.put("extUsername", extUsername);
+ List list = service.findByProperties(ExtUserUseridMap.class, properties);
+ if (list == null || list.size() == 0) {
+ String[] defaultLangCountry = LanguageUtil.getDefaultLangCountry();
+ String[] userData = { "", firstName, lastName, "", "", "", "", "", "", "", "", email,
+ defaultLangCountry[1], defaultLangCountry[0] };
+ return createExtUserUseridMap(serverMap, extUsername, password, userData, false);
+ } else {
+ return (ExtUserUseridMap) list.get(0);
}
-
- public ExtUserUseridMap getImplicitExtUserUseridMap(
- ExtServerOrgMap serverMap,
- String extUsername,
- String password,
- String firstName,
- String lastName,
- String email)
- throws UserInfoFetchException
- {
- Map properties = new HashMap();
- properties.put("extServerOrgMap.sid", serverMap.getSid());
- properties.put("extUsername", extUsername);
- List list = service.findByProperties(ExtUserUseridMap.class, properties);
- if(list==null || list.size()==0){
- String[] defaultLangCountry = LanguageUtil.getDefaultLangCountry();
- String[] userData = { "",firstName,lastName,"","","","","","","","",email,defaultLangCountry[1],defaultLangCountry[0] };
- return createExtUserUseridMap(serverMap, extUsername, password, userData, false);
- }else{
- return (ExtUserUseridMap)list.get(0);
- }
+ }
+
+ public ExtUserUseridMap getImplicitExtUserUseridMap(ExtServerOrgMap serverMap, String extUsername,
+ String firstName, String lastName, String language, String country, String email)
+ throws UserInfoFetchException {
+ Map properties = new HashMap();
+ properties.put("extServerOrgMap.sid", serverMap.getSid());
+ properties.put("extUsername", extUsername);
+ List list = service.findByProperties(ExtUserUseridMap.class, properties);
+ if (list == null || list.size() == 0) {
+ return createImplicitExtUserUseridMap(serverMap, extUsername, firstName, lastName, language, country, email);
+ } else {
+ return (ExtUserUseridMap) list.get(0);
}
-
- public ExtUserUseridMap getImplicitExtUserUseridMap(
- ExtServerOrgMap serverMap,
- String extUsername,
- String firstName,
- String lastName,
- String language,
- String country,
- String email)
- throws UserInfoFetchException
- {
- Map properties = new HashMap();
- properties.put("extServerOrgMap.sid", serverMap.getSid());
- properties.put("extUsername", extUsername);
- List list = service.findByProperties(ExtUserUseridMap.class, properties);
- if(list==null || list.size()==0){
- return createImplicitExtUserUseridMap(serverMap, extUsername, firstName, lastName, language, country, email);
- }else{
- return (ExtUserUseridMap)list.get(0);
- }
- }
-
- private ExtCourseClassMap createExtCourseClassMap(ExtServerOrgMap serverMap, User user,
- String extCourseId, String extCourseName, String countryIsoCode, String langIsoCode,
- String parentOrgId, Boolean isTeacher, Boolean prefix) {
- Organisation org = createOrganisation(serverMap, user, extCourseId, extCourseName, countryIsoCode, langIsoCode, parentOrgId, prefix);
- addMemberships(user,org,isTeacher);
- ExtCourseClassMap map = new ExtCourseClassMap();
- map.setCourseid(extCourseId);
- map.setExtServerOrgMap(serverMap);
- map.setOrganisation(org);
- service.save(map);
- return map;
- }
-
- private Organisation createOrganisation(ExtServerOrgMap serverMap, User user,
- String extCourseId, String extCourseName, String countryIsoCode, String langIsoCode,
- String parentOrgId, Boolean prefix) {
- Organisation org = new Organisation();
- org.setName( prefix ? buildName(serverMap.getPrefix(), extCourseName) : extCourseName );
- org.setDescription(extCourseId);
- org.setOrganisationState((OrganisationState)service.findById(OrganisationState.class,OrganisationState.ACTIVE));
- org.setLocale(LanguageUtil.getSupportedLocale(langIsoCode, countryIsoCode));
+ }
- // determine whether org will be a group or subgroup
- Organisation parent = (Organisation)service.findById(Organisation.class, Integer.valueOf(parentOrgId));
- if (parent != null) {
- org.setParentOrganisation(parent);
- if (!parent.getOrganisationId().equals(service.getRootOrganisation().getOrganisationId())) {
- org.setOrganisationType((OrganisationType)service.findById(OrganisationType.class,OrganisationType.CLASS_TYPE));
- } else {
- org.setOrganisationType((OrganisationType)service.findById(OrganisationType.class,OrganisationType.COURSE_TYPE));
- }
- } else {
- // default
- org.setParentOrganisation(service.getRootOrganisation());
- org.setOrganisationType((OrganisationType)service.findById(OrganisationType.class,OrganisationType.COURSE_TYPE));
- }
- return service.saveOrganisation(org, user.getUserId());
+ private ExtCourseClassMap createExtCourseClassMap(ExtServerOrgMap serverMap, User user, String extCourseId,
+ String extCourseName, String countryIsoCode, String langIsoCode, String parentOrgId, Boolean isTeacher,
+ Boolean prefix) {
+ Organisation org = createOrganisation(serverMap, user, extCourseId, extCourseName, countryIsoCode, langIsoCode,
+ parentOrgId, prefix);
+ addMemberships(user, org, isTeacher);
+ ExtCourseClassMap map = new ExtCourseClassMap();
+ map.setCourseid(extCourseId);
+ map.setExtServerOrgMap(serverMap);
+ map.setOrganisation(org);
+ service.save(map);
+ return map;
+ }
+
+ private Organisation createOrganisation(ExtServerOrgMap serverMap, User user, String extCourseId,
+ String extCourseName, String countryIsoCode, String langIsoCode, String parentOrgId, Boolean prefix) {
+ Organisation org = new Organisation();
+ org.setName(prefix ? buildName(serverMap.getPrefix(), extCourseName) : extCourseName);
+ org.setDescription(extCourseId);
+ org.setOrganisationState((OrganisationState) service
+ .findById(OrganisationState.class, OrganisationState.ACTIVE));
+ org.setLocale(LanguageUtil.getSupportedLocale(langIsoCode, countryIsoCode));
+
+ // determine whether org will be a group or subgroup
+ Organisation parent = (Organisation) service.findById(Organisation.class, Integer.valueOf(parentOrgId));
+ if (parent != null) {
+ org.setParentOrganisation(parent);
+ if (!parent.getOrganisationId().equals(service.getRootOrganisation().getOrganisationId())) {
+ org.setOrganisationType((OrganisationType) service.findById(OrganisationType.class,
+ OrganisationType.CLASS_TYPE));
+ } else {
+ org.setOrganisationType((OrganisationType) service.findById(OrganisationType.class,
+ OrganisationType.COURSE_TYPE));
+ }
+ } else {
+ // default
+ org.setParentOrganisation(service.getRootOrganisation());
+ org.setOrganisationType((OrganisationType) service.findById(OrganisationType.class,
+ OrganisationType.COURSE_TYPE));
}
-
- // flexible method to specify username and password
- private ExtUserUseridMap createExtUserUseridMap(ExtServerOrgMap serverMap, String extUsername, String password, String[] userData, boolean prefix) throws UserInfoFetchException {
- User user = new User();
- user.setLogin( prefix ? buildName(serverMap.getPrefix(),extUsername) : extUsername );
- user.setPassword(password);
- user.setTitle(userData[0]);
- user.setFirstName(userData[1]);
- user.setLastName(userData[2]);
- user.setAddressLine1(userData[3]);
- user.setCity(userData[4]);
- user.setState(userData[5]);
- user.setPostcode(userData[6]);
- user.setCountry(userData[7]);
- user.setDayPhone(userData[8]);
- user.setMobilePhone(userData[9]);
- user.setFax(userData[10]);
- user.setEmail(userData[11]);
- user.setAuthenticationMethod((AuthenticationMethod)service.findById(AuthenticationMethod.class, AuthenticationMethod.DB));
- user.setCreateDate(new Date());
- user.setDisabledFlag(false);
- user.setLocale(LanguageUtil.getSupportedLocale(userData[13], userData[12]));
- user.setFlashTheme(service.getDefaultFlashTheme());
- user.setHtmlTheme(service.getDefaultHtmlTheme());
- service.save(user);
- ExtUserUseridMap map = new ExtUserUseridMap();
- map.setExtServerOrgMap(serverMap);
- map.setExtUsername(extUsername);
- map.setUser(user);
- service.save(map);
- return map;
- }
-
- // compatibility method to support integrations
- private ExtUserUseridMap createExtUserUseridMap(ExtServerOrgMap serverMap, String extUsername) throws UserInfoFetchException {
- String[] userData = getUserDataFromExtServer(serverMap, extUsername);
- String password = HashUtil.sha1(RandomPasswordGenerator.nextPassword(10));
- return createExtUserUseridMap(serverMap, extUsername, password, userData, true);
- }
-
- // compatibility method
- public ExtUserUseridMap createImplicitExtUserUseridMap(ExtServerOrgMap serverMap,
- String extUsername,
- String firstName,
- String lastName,
- String language,
- String country,
- String email) throws UserInfoFetchException
- {
- String[] userData = { "",firstName,lastName,"","","","","","","","",email, country, language };
- String password = HashUtil.sha1(RandomPasswordGenerator.nextPassword(10));
- return createExtUserUseridMap(serverMap, extUsername, password, userData, true);
- }
-
+ return service.saveOrganisation(org, user.getUserId());
+ }
- private String[] getUserDataFromExtServer(ExtServerOrgMap serverMap, String extUsername) throws UserInfoFetchException {
- //the callback url must contain %username%, %timestamp% and %hash%
- //eg: "http://test100.ics.mq.edu.au/webapps/lams-plglamscontent-bb_bb60/UserData?uid=%username%&ts=%timestamp%&hash=%hash%";
- //where %username%, %timestamp% and %hash% will be replaced with their real values
- try {
- String userDataCallbackUrl = serverMap.getUserinfoUrl();
- String timestamp = Long.toString(new Date().getTime());
- String hash = hash(serverMap, extUsername, timestamp);
-
- String encodedExtUsername = URLEncoder.encode(extUsername, "UTF8");
-
- //set the values for the parameters
- userDataCallbackUrl = userDataCallbackUrl.replaceAll("%username%", encodedExtUsername).replaceAll("%timestamp%", timestamp).replaceAll("%hash%", hash);
- log.debug(userDataCallbackUrl);
- URL url = new URL(userDataCallbackUrl);
- URLConnection conn = url.openConnection();
- if (!(conn instanceof HttpURLConnection))
- throw new UserInfoFetchException("Fail to fetch user data from external server:"
- + serverMap.getServerid() + "- Invalid connection type");
+ // flexible method to specify username and password
+ private ExtUserUseridMap createExtUserUseridMap(ExtServerOrgMap serverMap, String extUsername, String password,
+ String[] userData, boolean prefix) throws UserInfoFetchException {
+ User user = new User();
+ user.setLogin(prefix ? buildName(serverMap.getPrefix(), extUsername) : extUsername);
+ user.setPassword(password);
+ user.setTitle(userData[0]);
+ user.setFirstName(userData[1]);
+ user.setLastName(userData[2]);
+ user.setAddressLine1(userData[3]);
+ user.setCity(userData[4]);
+ user.setState(userData[5]);
+ user.setPostcode(userData[6]);
+ user.setCountry(userData[7]);
+ user.setDayPhone(userData[8]);
+ user.setMobilePhone(userData[9]);
+ user.setFax(userData[10]);
+ user.setEmail(userData[11]);
+ user.setAuthenticationMethod((AuthenticationMethod) service.findById(AuthenticationMethod.class,
+ AuthenticationMethod.DB));
+ user.setCreateDate(new Date());
+ user.setDisabledFlag(false);
+ user.setLocale(LanguageUtil.getSupportedLocale(userData[13], userData[12]));
+ user.setFlashTheme(service.getDefaultFlashTheme());
+ user.setHtmlTheme(service.getDefaultHtmlTheme());
+ service.save(user);
+ ExtUserUseridMap map = new ExtUserUseridMap();
+ map.setExtServerOrgMap(serverMap);
+ map.setExtUsername(extUsername);
+ map.setUser(user);
+ service.save(map);
+ return map;
+ }
- HttpURLConnection httpConn = (HttpURLConnection) conn;
- if (httpConn.getResponseCode() != HttpURLConnection.HTTP_OK)
- throw new UserInfoFetchException(
- "Fail to fetch user data from external server:"
- + serverMap.getServerid()
- + " - Unexpected return HTTP Status:"+httpConn.getResponseCode());
+ // compatibility method to support integrations
+ private ExtUserUseridMap createExtUserUseridMap(ExtServerOrgMap serverMap, String extUsername)
+ throws UserInfoFetchException {
+ String[] userData = getUserDataFromExtServer(serverMap, extUsername);
+ String password = HashUtil.sha1(RandomPasswordGenerator.nextPassword(10));
+ return createExtUserUseridMap(serverMap, extUsername, password, userData, true);
+ }
- InputStream is = url.openConnection().getInputStream();
- BufferedReader isReader = new BufferedReader(new InputStreamReader(is));
- String str = isReader.readLine();
- if (str == null) {
- throw new UserInfoFetchException("Fail to fetch user data from external server:"
- + serverMap.getServerid()
- + " - No data returned from external server");
- }
+ // compatibility method
+ public ExtUserUseridMap createImplicitExtUserUseridMap(ExtServerOrgMap serverMap, String extUsername,
+ String firstName, String lastName, String language, String country, String email)
+ throws UserInfoFetchException {
+ String[] userData = { "", firstName, lastName, "", "", "", "", "", "", "", "", email, country, language };
+ String password = HashUtil.sha1(RandomPasswordGenerator.nextPassword(10));
+ return createExtUserUseridMap(serverMap, extUsername, password, userData, true);
+ }
- return CSVUtil.parse(str);
+ private String[] getUserDataFromExtServer(ExtServerOrgMap serverMap, String extUsername)
+ throws UserInfoFetchException {
+ //the callback url must contain %username%, %timestamp% and %hash%
+ //eg: "http://test100.ics.mq.edu.au/webapps/lams-plglamscontent-bb_bb60/UserData?uid=%username%&ts=%timestamp%&hash=%hash%";
+ //where %username%, %timestamp% and %hash% will be replaced with their real values
+ try {
+ String userDataCallbackUrl = serverMap.getUserinfoUrl();
+ String timestamp = Long.toString(new Date().getTime());
+ String hash = hash(serverMap, extUsername, timestamp);
- } catch (MalformedURLException e) {
- log.error(e);
- throw new UserInfoFetchException(e);
- } catch (IOException e) {
- log.error(e);
- throw new UserInfoFetchException(e);
- } catch (ParseException e) {
- log.error(e);
- throw new UserInfoFetchException(e);
- }
- }
+ String encodedExtUsername = URLEncoder.encode(extUsername, "UTF8");
- public String hash(ExtServerOrgMap serverMap, String extUsername, String timestamp) {
- String serverId = serverMap.getServerid();
- String serverKey = serverMap.getServerkey();
- String plaintext = timestamp.trim().toLowerCase()+extUsername.trim().toLowerCase()+serverId.trim().toLowerCase()+serverKey.trim().toLowerCase();
- return HashUtil.sha1(plaintext);
- }
+ //set the values for the parameters
+ userDataCallbackUrl = userDataCallbackUrl.replaceAll("%username%", encodedExtUsername).replaceAll(
+ "%timestamp%", timestamp).replaceAll("%hash%", hash);
+ log.debug(userDataCallbackUrl);
+ URL url = new URL(userDataCallbackUrl);
+ URLConnection conn = url.openConnection();
+ if (!(conn instanceof HttpURLConnection))
+ throw new UserInfoFetchException("Fail to fetch user data from external server:"
+ + serverMap.getServerid() + "- Invalid connection type");
- private String buildName(String prefix, String name){
- return prefix+'_'+name;
- }
+ HttpURLConnection httpConn = (HttpURLConnection) conn;
+ if (httpConn.getResponseCode() != HttpURLConnection.HTTP_OK)
+ throw new UserInfoFetchException("Fail to fetch user data from external server:"
+ + serverMap.getServerid() + " - Unexpected return HTTP Status:" + httpConn.getResponseCode());
- public List getAllExtServerOrgMaps() {
- return service.findAll(ExtServerOrgMap.class);
- }
+ InputStream is = url.openConnection().getInputStream();
+ BufferedReader isReader = new BufferedReader(new InputStreamReader(is));
+ String str = isReader.readLine();
+ if (str == null) {
+ throw new UserInfoFetchException("Fail to fetch user data from external server:"
+ + serverMap.getServerid() + " - No data returned from external server");
+ }
- public void saveExtServerOrgMap(ExtServerOrgMap map) {
- service.save(map);
+ return CSVUtil.parse(str);
+
+ } catch (MalformedURLException e) {
+ log.error(e);
+ throw new UserInfoFetchException(e);
+ } catch (IOException e) {
+ log.error(e);
+ throw new UserInfoFetchException(e);
+ } catch (ParseException e) {
+ log.error(e);
+ throw new UserInfoFetchException(e);
}
+ }
- public ExtServerOrgMap getExtServerOrgMap(Integer sid) {
- return (ExtServerOrgMap)service.findById(ExtServerOrgMap.class, sid);
+ public String hash(ExtServerOrgMap serverMap, String extUsername, String timestamp) {
+ String serverId = serverMap.getServerid();
+ String serverKey = serverMap.getServerkey();
+ String plaintext = timestamp.trim().toLowerCase() + extUsername.trim().toLowerCase()
+ + serverId.trim().toLowerCase() + serverKey.trim().toLowerCase();
+ return HashUtil.sha1(plaintext);
+ }
+
+ private String buildName(String prefix, String name) {
+ return prefix + '_' + name;
+ }
+
+ public List getAllExtServerOrgMaps() {
+ return service.findAll(ExtServerOrgMap.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ public List getMappedServers(String toolSig) {
+
+ Map properties = new HashMap();
+ properties.put("tool.toolSignature", toolSig);
+ return (List)service.findByProperties(ExtServerToolAdapterMap.class, properties);
+ }
+
+ @SuppressWarnings("unchecked")
+ public ExtServerToolAdapterMap getMappedServer(String serverId, String toolSig){
+ Map properties = new HashMap();
+ properties.put("tool.toolSignature", toolSig);
+ properties.put("extServer.serverid", serverId);
+ List ret = service.findByProperties(ExtServerToolAdapterMap.class, properties);
+ if (ret != null && ret.size() > 0) {
+ return (ExtServerToolAdapterMap)ret.get(0);
+ } else {
+ return null;
}
+ }
+
+ public void saveExtServerToolAdapterMap(ExtServerToolAdapterMap map){
+ service.save(map);
+ }
+
+ public void deleteExtServerToolAdapterMap(ExtServerToolAdapterMap map){
+ service.delete(map);
+ }
+
+ public void saveExtServerOrgMap(ExtServerOrgMap map) {
+ service.save(map);
+ }
+
+ public ExtServerOrgMap getExtServerOrgMap(Integer sid) {
+ return (ExtServerOrgMap) service.findById(ExtServerOrgMap.class, sid);
+ }
}
\ No newline at end of file
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LibraryActivityDTO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LibraryActivityDTO.java,v
diff -u -r1.21 -r1.21.6.1
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LibraryActivityDTO.java 16 Sep 2008 03:18:13 -0000 1.21
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LibraryActivityDTO.java 3 Jun 2009 06:36:29 -0000 1.21.6.1
@@ -24,7 +24,9 @@
package org.lamsfoundation.lams.learningdesign.dto;
import java.util.Date;
+import java.util.Set;
+import org.lamsfoundation.lams.integration.ExtServerToolAdapterMap;
import org.lamsfoundation.lams.learningdesign.Activity;
import org.lamsfoundation.lams.learningdesign.BranchingActivity;
import org.lamsfoundation.lams.learningdesign.ConditionGateActivity;
@@ -104,7 +106,7 @@
/** Used for I18N the URLS. Does not need to be sent to clients, so no getter exists. */
private String languageCode;
- private Boolean toolAdapter;
+ private String[] mappedServers;
public LibraryActivityDTO(Activity activity, String languageCode) {
activityTypeID = activity.getActivityTypeId();
@@ -209,6 +211,17 @@
adminURL = tool.getAdminUrl();
supportsOutputs = tool.getSupportsOutputs();
extLmsId = tool.getExtLmsId();
+
+ Set mappedServersArray = tool.getMappedServers();
+ if (mappedServersArray != null) {
+ this.mappedServers = new String[mappedServersArray.size()];
+ int i = 0;
+ for (ExtServerToolAdapterMap map : mappedServersArray) {
+ mappedServers[i] = map.getExtServer().getServerid();
+ i++;
+ }
+ }
+
helpURL = HelpUtil.constructToolURL(tool.getHelpUrl(), toolSignature, "", languageCode);
}
@@ -618,4 +631,14 @@
this.extLmsId = extLmsId;
}
+ public String[] getMappedServers() {
+ return mappedServers;
+ }
+
+ public void setMappedServers(String[] mappedServers) {
+ this.mappedServers = mappedServers;
+ }
+
+
+
}
\ No newline at end of file
Index: lams_common/src/java/org/lamsfoundation/lams/tool/Tool.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/tool/Tool.java,v
diff -u -r1.24 -r1.24.4.1
--- lams_common/src/java/org/lamsfoundation/lams/tool/Tool.java 9 Dec 2008 05:38:10 -0000 1.24
+++ lams_common/src/java/org/lamsfoundation/lams/tool/Tool.java 3 Jun 2009 06:36:29 -0000 1.24.4.1
@@ -26,10 +26,12 @@
import java.io.Serializable;
import java.util.Date;
import java.util.Set;
+import java.util.HashSet;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
+import org.lamsfoundation.lams.integration.ExtServerToolAdapterMap;
import org.lamsfoundation.lams.tool.dto.AuthoringToolDTO;
/**
@@ -109,6 +111,9 @@
/** persistent field */
private Set activities;
+
+ /** persistent field */
+ private Set mappedServers;
/** persistent field */
private Integer groupingSupportTypeId;
@@ -174,6 +179,7 @@
this.languageFile = languageFile;
this.supportsOutputs = supportsOutputs;
this.extLmsId = extLmsId;
+ this.mappedServers = new HashSet();
}
/** default constructor */
@@ -198,6 +204,7 @@
this.createDateTime = createDateTime;
this.toolIdentifier = toolIdentifier;
this.toolVersion = toolVersion;
+ this.mappedServers = new HashSet();
}
/**
@@ -630,4 +637,11 @@
this.pedagogicalPlannerUrl = pedagogicalPlannerUrl;
}
+ public Set getMappedServers() {
+ return mappedServers;
+ }
+
+ public void setMappedServers(Set mappedServers) {
+ this.mappedServers = mappedServers;
+ }
}
Index: lams_common/src/java/org/lamsfoundation/lams/tool/ToolAdapterContentManager.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/tool/ToolAdapterContentManager.java,v
diff -u -r1.1 -r1.1.6.1
--- lams_common/src/java/org/lamsfoundation/lams/tool/ToolAdapterContentManager.java 15 Aug 2008 04:45:46 -0000 1.1
+++ lams_common/src/java/org/lamsfoundation/lams/tool/ToolAdapterContentManager.java 3 Jun 2009 06:36:29 -0000 1.1.6.1
@@ -1,5 +1,6 @@
package org.lamsfoundation.lams.tool;
+import org.lamsfoundation.lams.tool.exception.DataMissingException;
import org.lamsfoundation.lams.tool.exception.ToolException;
/**
@@ -35,4 +36,5 @@
public void importToolContent(Long toolContentId, Integer newUserUid, String toolContentPath, String fromVersion, String toVersion, String customCSV)
throws ToolException;
+
}