Index: lams_admin/build.xml
===================================================================
diff -u -rd94821a70e5de77dbe672ce502027283bd217e10 -r4d7c3f5641fd7081af1ed74a2d265242ad69551c
--- lams_admin/build.xml (.../build.xml) (revision d94821a70e5de77dbe672ce502027283bd217e10)
+++ lams_admin/build.xml (.../build.xml) (revision 4d7c3f5641fd7081af1ed74a2d265242ad69551c)
@@ -184,6 +184,7 @@
+
Index: lams_admin/conf/language/ApplicationResources.properties
===================================================================
diff -u -rbb95ab8738e05f5d338c56d9111d83fe00872d01 -r4d7c3f5641fd7081af1ed74a2d265242ad69551c
--- lams_admin/conf/language/ApplicationResources.properties (.../ApplicationResources.properties) (revision bb95ab8738e05f5d338c56d9111d83fe00872d01)
+++ lams_admin/conf/language/ApplicationResources.properties (.../ApplicationResources.properties) (revision 4d7c3f5641fd7081af1ed74a2d265242ad69551c)
@@ -215,6 +215,20 @@
sysadmin.library.activity.description =Description
sysadmin.library.createtim =Create time
sysadmin.function =Function
+admin.importv1.title = Import LAMS 1 Users
+msg.importv1.1 = Download
+msg.importv1.2 = On the command line of your LAMS 1 database server, run the following command
+msg.importv1.3a = Submit
+msg.importv1.3b = using the form below.
+msg.importv1.4 = You will be presented with a list of organisations and session classes to import.
+label.importv1.integrated = Include integration users and organisations
+label.continue = Continue
+msg.importv1.found.users = Found {0} LAMS 1 users.
+heading.importv1.users = Users
+heading.importv1.account.organisations = Account Organisations
+heading.importv1.session.classes = Session Classes
+heading.importv1.sid = sid
+msg.importv1.created = Created {0} users and {1} groups.
+msg.importv1.already.exist = The following logins already exist
-
#======= End labels: Exported 209 labels for en AU =====
Index: lams_admin/conf/language/ApplicationResources_en_AU.properties
===================================================================
diff -u -rbb95ab8738e05f5d338c56d9111d83fe00872d01 -r4d7c3f5641fd7081af1ed74a2d265242ad69551c
--- lams_admin/conf/language/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision bb95ab8738e05f5d338c56d9111d83fe00872d01)
+++ lams_admin/conf/language/ApplicationResources_en_AU.properties (.../ApplicationResources_en_AU.properties) (revision 4d7c3f5641fd7081af1ed74a2d265242ad69551c)
@@ -215,6 +215,21 @@
sysadmin.library.activity.description =Description
sysadmin.library.createtim =Create time
sysadmin.function =Function
+admin.importv1.title = Import LAMS 1 Users
+msg.importv1.1 = Download
+msg.importv1.2 = On the command line of your LAMS 1 database server, run the following command
+msg.importv1.3a = Submit
+msg.importv1.3b = using the form below.
+msg.importv1.4 = You will be presented with a list of organisations and session classes to import.
+label.importv1.integrated = Include integration users and organisations
+label.continue = Continue
+msg.importv1.found.users = Found {0} LAMS 1 users.
+heading.importv1.users = Users
+heading.importv1.account.organisations = Account Organisations
+heading.importv1.session.classes = Session Classes
+heading.importv1.sid = sid
+msg.importv1.created = Created {0} users and {1} groups.
+msg.importv1.already.exist = The following logins already exist
#======= End labels: Exported 209 labels for en AU =====
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/service/ISpreadsheetService.java
===================================================================
diff -u -r35da7c79459d1e4ecc8a599e72abef1f5f8a69bf -r4d7c3f5641fd7081af1ed74a2d265242ad69551c
--- lams_admin/src/java/org/lamsfoundation/lams/admin/service/ISpreadsheetService.java (.../ISpreadsheetService.java) (revision 35da7c79459d1e4ecc8a599e72abef1f5f8a69bf)
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/service/ISpreadsheetService.java (.../ISpreadsheetService.java) (revision 4d7c3f5641fd7081af1ed74a2d265242ad69551c)
@@ -40,6 +40,7 @@
public static final String SEPARATOR = "|";
public static final String IMPORT_HELP_PAGE = "Import+Users";
+ public static final String IMPORTV1_HELP_PAGE = "Import+LAMS+1+Users";
/**
* Returns true if spreadsheet contains user data.
@@ -66,6 +67,14 @@
public List parseSpreadsheet(FormFile fileItem) throws IOException;
/**
+ * Returns list of V1 users and orgs after parsing the output of a mysql dump.
+ * @param fileItem
+ * @return
+ * @throws IOException
+ */
+ public List parseV1UsersFile(FormFile fileItem, boolean includeIntegrated) throws IOException;
+
+ /**
* Returns message results from parsing list of users in spreadsheet.
* @param file
* @return
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/service/SpreadsheetService.java
===================================================================
diff -u -r570bcc3eaf789d638c08cb96e0fec3e4a9ba6167 -r4d7c3f5641fd7081af1ed74a2d265242ad69551c
--- lams_admin/src/java/org/lamsfoundation/lams/admin/service/SpreadsheetService.java (.../SpreadsheetService.java) (revision 570bcc3eaf789d638c08cb96e0fec3e4a9ba6167)
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/service/SpreadsheetService.java (.../SpreadsheetService.java) (revision 4d7c3f5641fd7081af1ed74a2d265242ad69551c)
@@ -23,7 +23,9 @@
/* $Id$ */
package org.lamsfoundation.lams.admin.service;
+import java.io.BufferedReader;
import java.io.IOException;
+import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -39,6 +41,9 @@
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.struts.upload.FormFile;
import org.lamsfoundation.lams.admin.AdminConstants;
+import org.lamsfoundation.lams.admin.web.dto.V1OrgRightDTO;
+import org.lamsfoundation.lams.admin.web.dto.V1OrganisationDTO;
+import org.lamsfoundation.lams.admin.web.dto.V1UserDTO;
import org.lamsfoundation.lams.themes.CSSThemeVisualElement;
import org.lamsfoundation.lams.usermanagement.AuthenticationMethod;
import org.lamsfoundation.lams.usermanagement.Organisation;
@@ -153,6 +158,134 @@
return new ArrayList();
}
+ public List parseV1UsersFile(FormFile fileItem, boolean includeIntegrated) throws IOException {
+ ArrayList users = new ArrayList();
+ ArrayList orgs = new ArrayList();
+ ArrayList results = new ArrayList();
+ ArrayList integPrefixes = new ArrayList();
+ ArrayList integOrgid = new ArrayList();
+ BufferedReader reader = new BufferedReader(new InputStreamReader(fileItem.getInputStream()));
+
+ // get username prefixes, for integrations on the lams 1 server
+ String line = reader.readLine();
+ while (!line.startsWith("login\tpassword")) {
+ if (!line.startsWith("prefix")) {
+ String[] lineArray = line.split("\t");
+ if (lineArray.length > 0) {
+ integPrefixes.add(lineArray[0]);
+ }
+ if (lineArray.length > 1) {
+ integOrgid.add(lineArray[1]);
+ }
+ }
+ line = reader.readLine();
+ }
+
+ // get user details
+ // login, password, fname, lname, email
+ line = reader.readLine(); // skip line containing column headings
+ while (!line.startsWith("sid\tname")) {
+ String[] userDetails = line.split("\t");
+ line = reader.readLine();
+ if (!includeIntegrated && isIntegratedUser(integPrefixes, userDetails[0])) {
+ continue;
+ }
+ V1UserDTO userDTO = new V1UserDTO(
+ userDetails[0], userDetails[1], userDetails[2], userDetails[3]);
+ if (userDetails.length > 4 && !StringUtils.equals(userDetails[4], "NULL")) {
+ userDTO.setEmail(userDetails[4]);
+ }
+ users.add(userDTO);
+ }
+
+ // get organisations
+ // sid, name, description, account_organisation
+ line = reader.readLine();
+ while (!line.startsWith("login\tg")) {
+ String[] orgDetails = line.split("\t");
+ line = reader.readLine();
+ if (orgDetails.length != 4) {
+ log.debug("LAMS 1 text file has troublesome organisation: ");
+ for (int i=0; i currentRoles = new ArrayList();
+ String currentLogin = "";
+ while (!line.startsWith("login\tsid")) {
+ String[] userRole = line.split("\t");
+ line = reader.readLine();
+ if (!includeIntegrated && isIntegratedUser(integPrefixes, userRole[0])) {
+ continue;
+ }
+ if (!StringUtils.equals(userRole[0], currentLogin)) {
+ if (!currentRoles.isEmpty()) {
+ int index = users.indexOf(new V1UserDTO(currentLogin));
+ V1UserDTO userDTO = users.get(index);
+ userDTO.setRoleIds(new ArrayList(currentRoles));
+ users.set(index, userDTO);
+ }
+ currentLogin = userRole[0];
+ currentRoles.clear();
+ }
+ currentRoles.add(userRole[1]);
+ }
+ int index = users.indexOf(new V1UserDTO(currentLogin));
+ V1UserDTO userDTO = users.get(index);
+ userDTO.setRoleIds(new ArrayList(currentRoles));
+ users.set(index, userDTO);
+
+ // get user rights
+ // login, org id, right id
+ line = reader.readLine();
+ while (line!=null) {
+ String[] userRight = line.split("\t");
+ line = reader.readLine();
+ if (!includeIntegrated && isIntegratedUser(integPrefixes, userRight[0])) {
+ continue;
+ }
+ V1OrgRightDTO orgRightDTO = new V1OrgRightDTO(userRight[1], userRight[2]);
+ index = users.indexOf(new V1UserDTO(userRight[0]));
+ userDTO = users.get(index);
+ List orgRights = userDTO.getOrgRights();
+ if (orgRights==null) {
+ orgRights = new ArrayList();
+ }
+ orgRights.add(orgRightDTO);
+ userDTO.setOrgRights(orgRights);
+ users.set(index, userDTO);
+ }
+
+ results.add(users);
+ results.add(orgs);
+
+ return results;
+ }
+
+ private boolean isIntegratedUser(List integPrefixes, String login) {
+ int underscore = login.indexOf('_');
+ if (underscore >= 0) {
+ if (integPrefixes.contains(login.substring(0, underscore))) {
+ return true;
+ }
+ }
+ return false;
+ }
+
public List parseUserSpreadsheet(FormFile fileItem) throws IOException {
results = new ArrayList();
HSSFSheet sheet = getSheet(fileItem);
@@ -411,13 +544,13 @@
} else {
return null;
}
- log.debug("string cell value: "+cell.getStringCellValue().trim());
+ //log.debug("string cell value: "+cell.getStringCellValue().trim());
return cell.getStringCellValue().trim();
} catch(Exception e) {
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
double d = cell.getNumericCellValue();
emptyRow = false;
- log.debug("numeric cell value: "+d);
+ //log.debug("numeric cell value: "+d);
return (new Long(new Double(d).longValue()).toString());
}
}
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1Action.java
===================================================================
diff -u
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1Action.java (revision 0)
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1Action.java (revision 4d7c3f5641fd7081af1ed74a2d265242ad69551c)
@@ -0,0 +1,58 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ****************************************************************
+ */
+
+/* $$Id$$ */
+package org.lamsfoundation.lams.admin.web.action;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.struts.action.Action;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.lamsfoundation.lams.admin.web.form.ImportV1Form;
+
+/**
+ * @author jliew
+ *
+ * @struts:action path="/importv1"
+ * name="ImportV1Form"
+ * scope="request"
+ * validate="false"
+ *
+ * @struts:action-forward name="importv1" path=".importv1"
+ */
+public class ImportV1Action extends Action {
+
+ public ActionForward execute(ActionMapping mapping,
+ ActionForm form,
+ HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+
+ ImportV1Form importV1Form = (ImportV1Form)form;
+ importV1Form.setIntegrated(false);
+
+ return mapping.findForward("importv1");
+ }
+
+}
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1ContentsAction.java
===================================================================
diff -u
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1ContentsAction.java (revision 0)
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1ContentsAction.java (revision 4d7c3f5641fd7081af1ed74a2d265242ad69551c)
@@ -0,0 +1,85 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ****************************************************************
+ */
+
+/* $Id$ */
+package org.lamsfoundation.lams.admin.web.action;
+
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.log4j.Logger;
+import org.apache.struts.action.Action;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.lamsfoundation.lams.admin.service.AdminServiceProxy;
+import org.lamsfoundation.lams.admin.web.dto.V1OrganisationDTO;
+import org.lamsfoundation.lams.admin.web.dto.V1UserDTO;
+import org.lamsfoundation.lams.admin.web.form.ImportV1ContentsForm;
+import org.lamsfoundation.lams.util.MessageService;
+
+/**
+ * @author jliew
+ *
+ * @struts:action path="/importv1contents"
+ * name="ImportV1ContentsForm"
+ * scope="session"
+ * validate="false"
+ *
+ * @struts:action-forward name="importv1contents" path=".importv1contents"
+ * @struts:action-forward name="sysadmin" path="/sysadminstart.do"
+ */
+public class ImportV1ContentsAction extends Action {
+
+ private static Logger log = Logger.getLogger(ImportV1ContentsAction.class);
+
+ public ActionForward execute(ActionMapping mapping,
+ ActionForm form,
+ HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+
+ ImportV1ContentsForm importV1ContentsForm = (ImportV1ContentsForm)form;
+ importV1ContentsForm.setOnlyMembers(true);
+ List users = (List)request.getAttribute("users");
+ List orgs = (List)request.getAttribute("orgs");
+
+ // user and org data kept in session so we don't send it to the client
+ // unnecessarily as it can get quite large; danger is, if the client
+ // doesn't complete the form, i.e. click save or cancel, then these
+ // remain in session
+ request.getSession().setAttribute("users", users);
+ request.getSession().setAttribute("orgs", orgs);
+
+ MessageService messageService = AdminServiceProxy
+ .getMessageService(getServlet().getServletContext());
+ String[] args = new String[1];
+ args[0] = String.valueOf(users.size());
+ request.setAttribute("msgNumUsers", messageService
+ .getMessage("msg.importv1.found.users", args));
+ request.setAttribute("numOrgs", orgs.size());
+
+ return mapping.findForward("importv1contents");
+ }
+
+}
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1ContentsSaveAction.java
===================================================================
diff -u
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1ContentsSaveAction.java (revision 0)
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1ContentsSaveAction.java (revision 4d7c3f5641fd7081af1ed74a2d265242ad69551c)
@@ -0,0 +1,294 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ****************************************************************
+ */
+
+/* $Id$ */
+package org.lamsfoundation.lams.admin.web.action;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.beanutils.BeanUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
+import org.apache.struts.action.Action;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.lamsfoundation.lams.admin.AdminConstants;
+import org.lamsfoundation.lams.admin.service.AdminServiceProxy;
+import org.lamsfoundation.lams.admin.web.dto.V1OrgRightDTO;
+import org.lamsfoundation.lams.admin.web.dto.V1OrganisationDTO;
+import org.lamsfoundation.lams.admin.web.dto.V1UserDTO;
+import org.lamsfoundation.lams.admin.web.form.ImportV1ContentsForm;
+import org.lamsfoundation.lams.themes.CSSThemeVisualElement;
+import org.lamsfoundation.lams.usermanagement.AuthenticationMethod;
+import org.lamsfoundation.lams.usermanagement.Organisation;
+import org.lamsfoundation.lams.usermanagement.OrganisationState;
+import org.lamsfoundation.lams.usermanagement.OrganisationType;
+import org.lamsfoundation.lams.usermanagement.Role;
+import org.lamsfoundation.lams.usermanagement.SupportedLocale;
+import org.lamsfoundation.lams.usermanagement.User;
+import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
+import org.lamsfoundation.lams.usermanagement.service.IUserManagementService;
+import org.lamsfoundation.lams.util.Configuration;
+import org.lamsfoundation.lams.util.ConfigurationKeys;
+import org.lamsfoundation.lams.util.MessageService;
+import org.lamsfoundation.lams.web.session.SessionManager;
+import org.lamsfoundation.lams.web.util.AttributeNames;
+
+/**
+ * @author jliew
+ *
+ * @struts:action path="/importv1contentssave"
+ * name="ImportV1ContentsForm"
+ * input=".importv1contents"
+ * scope="session"
+ * validate="false"
+ *
+ * @struts:action-forward name="importv1result" path=".importv1result"
+ * @struts:action-forward name="sysadmin" path="/sysadminstart.do"
+ */
+public class ImportV1ContentsSaveAction extends Action {
+
+ private static Logger log = Logger.getLogger(ImportV1ContentsSaveAction.class);
+ private static IUserManagementService service;
+
+ public ActionForward execute(ActionMapping mapping,
+ ActionForm form,
+ HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+
+ if (isCancelled(request)) {
+ removeSessionVars(request);
+ return mapping.findForward("sysadmin");
+ }
+
+ service = AdminServiceProxy.getService(getServlet().getServletContext());
+ // import data
+ List users = (List)request.getSession().getAttribute("users");
+ List orgs = (List)request.getSession().getAttribute("orgs");
+ removeSessionVars(request);
+
+ // import options
+ ImportV1ContentsForm importV1ContentsForm = (ImportV1ContentsForm)form;
+ List orgSids = Arrays.asList(importV1ContentsForm.getOrgSids());
+ List sessSids = Arrays.asList(importV1ContentsForm.getSessSids());
+ boolean onlyMembers = importV1ContentsForm.getOnlyMembers();
+
+ // default import options
+ String defaultLocale = Configuration.get(ConfigurationKeys.SERVER_LANGUAGE);
+ SupportedLocale locale = service.getSupportedLocale(defaultLocale.substring(0,2),defaultLocale.substring(3));
+ final OrganisationType courseType = (OrganisationType)service.findById(
+ OrganisationType.class, OrganisationType.COURSE_TYPE);
+ final OrganisationState activeState = (OrganisationState)service.findById(
+ OrganisationState.class, OrganisationState.ACTIVE);
+ Integer userID = ((UserDTO)SessionManager.getSession().getAttribute(AttributeNames.USER)).getUserID();
+
+ // import users
+ List alreadyExists = new ArrayList(); // users whose logins already exist
+ if (onlyMembers) {
+ List createdUsers = new ArrayList();
+ for (V1UserDTO user : users) {
+ if (!isUserMember(user, orgSids, sessSids)) {
+ continue;
+ }
+ boolean created = createUser(user, locale);
+ if (!created) {
+ alreadyExists.add(user);
+ } else {
+ createdUsers.add(user);
+ }
+ }
+ users = createdUsers;
+ } else {
+ for (V1UserDTO user : users) {
+ boolean created = createUser(user, locale);
+ if (!created) {
+ alreadyExists.add(user);
+ }
+ }
+ }
+
+ // import orgs
+ HashMap orgIdsMap = new HashMap(); // map v1 orgids to v2 orgids
+ for (V1OrganisationDTO org : orgs) {
+ if (StringUtils.equals(org.getAccountOrganisation(), "1")) {
+ if (!orgSids.contains(org.getSid())) {
+ continue;
+ }
+ } else if (StringUtils.equals(org.getAccountOrganisation(), "0")) {
+ if (!sessSids.contains(org.getSid())) {
+ continue;
+ }
+ }
+ Organisation v2org = createOrg(org, locale, courseType, activeState, userID);
+ orgIdsMap.put(org.getSid(), v2org.getOrganisationId());
+ }
+
+ // import user roles
+ for (V1UserDTO v1user : users) {
+ User user = service.getUserByLogin(v1user.getLogin());
+ // special case for 'core' role, equivalent to global role of sysadmin
+ if (v1user.getRoleIds().contains(V1UserDTO.ROLE_CORE)) {
+ ArrayList roles = new ArrayList();
+ roles.add(Role.ROLE_SYSADMIN.toString());
+ service.setRolesForUserOrganisation(user, service.getRootOrganisation(), roles);
+ }
+ for (V1OrgRightDTO v1orgRight : v1user.getOrgRights()) {
+ // the org was not selected to be imported
+ if (orgIdsMap.get(v1orgRight.getOrgSid())==null) {
+ continue;
+ }
+ List roles = getV2RoleIds(v1user.getRoleIds(), v1orgRight);
+ Organisation org = (Organisation)service.findById(Organisation.class, orgIdsMap.get(v1orgRight.getOrgSid()));
+ service.setRolesForUserOrganisation(user, org, roles);
+ }
+ }
+
+ MessageService messageService = AdminServiceProxy
+ .getMessageService(getServlet().getServletContext());
+ String[] args = new String[2];
+ args[0] = String.valueOf(users.size());
+ args[1] = String.valueOf(orgIdsMap.size());
+ request.setAttribute("msgNumCreated", messageService
+ .getMessage("msg.importv1.created", args));
+ request.setAttribute("alreadyExists", alreadyExists);
+
+ return mapping.findForward("importv1result");
+ }
+
+ // converts v1 roles/org rights to v2 roles.
+ private List getV2RoleIds(List roleIds, V1OrgRightDTO orgRight) {
+ List newRoleIds = new ArrayList();
+ for (String roleId : roleIds) {
+ if (StringUtils.equals(roleId, V1UserDTO.ROLE_ADMINISTRATOR)) {
+ if (StringUtils.equals(orgRight.getUserRight(), V1OrgRightDTO.ADMIN)) {
+ newRoleIds.add(Role.ROLE_GROUP_ADMIN.toString());
+ }
+ } else if (StringUtils.equals(roleId, V1UserDTO.ROLE_AUTHOR)) {
+ newRoleIds.add(Role.ROLE_AUTHOR.toString());
+ } else if (StringUtils.equals(roleId, V1UserDTO.ROLE_STAFF)) {
+ if (!StringUtils.equals(orgRight.getUserRight(), V1OrgRightDTO.MEMBERSHIP)) {
+ newRoleIds.add(Role.ROLE_MONITOR.toString());
+ }
+ } else if (StringUtils.equals(roleId, V1UserDTO.ROLE_LEARNER)) {
+ newRoleIds.add(Role.ROLE_LEARNER.toString());
+ }
+ }
+ return newRoleIds;
+ }
+
+ private void removeSessionVars(HttpServletRequest request) {
+ request.getSession().removeAttribute("users");
+ request.getSession().removeAttribute("orgs");
+ request.getSession().removeAttribute("ImportV1ContentsForm");
+ }
+
+ // make 'create user' audit log entry
+ private void createUserAuditLog(User user) {
+ String[] args = new String[2];
+ args[0] = user.getLogin()+"("+user.getUserId()+")";
+ args[1] = user.getFullName();
+ String message = AdminServiceProxy.getMessageService(getServlet().getServletContext())
+ .getMessage("audit.user.create", args);
+ AdminServiceProxy.getAuditService(getServlet().getServletContext())
+ .log(AdminConstants.MODULE_NAME, message);
+ }
+
+ private boolean createUser(V1UserDTO user, SupportedLocale locale) throws Exception {
+ // test username already exists
+ if (service.getUserByLogin(user.getLogin())!=null) {
+ return false;
+ }
+
+ User newUser = new User();
+ BeanUtils.copyProperties(newUser, user);
+ String flashName = Configuration.get(ConfigurationKeys.DEFAULT_FLASH_THEME);
+ List list = service.findByProperty(CSSThemeVisualElement.class, "name", flashName);
+ if (list!=null) {
+ CSSThemeVisualElement flashTheme = (CSSThemeVisualElement)list.get(0);
+ newUser.setFlashTheme(flashTheme);
+ }
+ String htmlName = Configuration.get(ConfigurationKeys.DEFAULT_HTML_THEME);
+ list = service.findByProperty(CSSThemeVisualElement.class, "name", htmlName);
+ if (list!=null) {
+ CSSThemeVisualElement htmlTheme = (CSSThemeVisualElement)list.get(0);
+ newUser.setHtmlTheme(htmlTheme);
+ }
+ newUser.setDisabledFlag(false);
+ newUser.setCreateDate(new Date());
+ newUser.setAuthenticationMethod((AuthenticationMethod)service.findByProperty(AuthenticationMethod.class,
+ "authenticationMethodName","LAMS-Database").get(0));
+ newUser.setUserId(null);
+ newUser.setLocale(locale);
+ service.save(newUser);
+
+ createUserAuditLog(newUser);
+ return true;
+ }
+
+ // is the user a member of one of the orgs to be imported
+ private boolean isUserMember(V1UserDTO user, List orgSids, List sessSids) {
+ List orgRights = user.getOrgRights();
+ for (V1OrgRightDTO orgRight : orgRights) {
+ if (orgSids.contains(orgRight.getOrgSid()) || sessSids.contains(orgRight.getOrgSid())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private Organisation createOrg(V1OrganisationDTO org,
+ SupportedLocale locale,
+ OrganisationType courseType,
+ OrganisationState activeState,
+ Integer userID) throws Exception {
+ // create the org
+ Organisation newOrg = new Organisation();
+ BeanUtils.copyProperties(newOrg, org);
+ newOrg.setParentOrganisation(service.getRootOrganisation());
+ newOrg.setOrganisationType(courseType);
+ newOrg.setOrganisationState(activeState);
+ newOrg.setLocale(locale);
+ newOrg = service.saveOrganisation(newOrg, userID);
+ createOrgAuditLog(newOrg);
+ return newOrg;
+ }
+
+ // make 'create org' audit log entry
+ private void createOrgAuditLog(Organisation org) {
+ String[] args = new String[2];
+ args[0] = org.getName()+"("+org.getOrganisationId()+")";
+ args[1] = org.getOrganisationType().getName();
+ String message = AdminServiceProxy.getMessageService(getServlet().getServletContext())
+ .getMessage("audit.organisation.create", args);
+ AdminServiceProxy.getAuditService(getServlet().getServletContext())
+ .log(AdminConstants.MODULE_NAME, message);
+ }
+}
+
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1SaveAction.java
===================================================================
diff -u
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1SaveAction.java (revision 0)
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1SaveAction.java (revision 4d7c3f5641fd7081af1ed74a2d265242ad69551c)
@@ -0,0 +1,85 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ****************************************************************
+ */
+
+/* $$Id$$ */
+package org.lamsfoundation.lams.admin.web.action;
+
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.log4j.Logger;
+import org.apache.struts.action.Action;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.upload.FormFile;
+import org.lamsfoundation.lams.admin.service.AdminServiceProxy;
+import org.lamsfoundation.lams.admin.service.ISpreadsheetService;
+import org.lamsfoundation.lams.admin.web.dto.V1OrganisationDTO;
+import org.lamsfoundation.lams.admin.web.dto.V1UserDTO;
+import org.lamsfoundation.lams.admin.web.form.ImportV1Form;
+
+/**
+ * @author jliew
+ *
+ * @struts:action path="/importv1save"
+ * name="ImportV1Form"
+ * input=".importv1"
+ * scope="request"
+ * validate="false"
+ *
+ * @struts:action-forward name="importv1contents" path="/importv1contents.do"
+ * @struts:action-forward name="sysadmin" path="/sysadminstart.do"
+ */
+public class ImportV1SaveAction extends Action {
+
+ private static Logger log = Logger.getLogger(ImportV1SaveAction.class);
+
+ public ActionForward execute(ActionMapping mapping,
+ ActionForm form,
+ HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+
+ if (isCancelled(request)) {
+ //return mapping.getInputForward();
+ return mapping.findForward("sysadmin");
+ }
+
+ //MessageService messageService = AdminServiceProxy.getMessageService(getServlet().getServletContext());
+ ISpreadsheetService spreadsheetService = AdminServiceProxy.getSpreadsheetService(getServlet().getServletContext());
+ ImportV1Form importV1Form = (ImportV1Form)form;
+ FormFile file = importV1Form.getFile();
+ boolean includeIntegrated = importV1Form.getIntegrated();
+
+ List results = spreadsheetService.parseV1UsersFile(file, includeIntegrated);
+ List users = results.get(0);
+ List orgs = results.get(1);
+
+ request.setAttribute("users", users);
+ request.setAttribute("orgs", orgs);
+
+ return mapping.findForward("importv1contents");
+ }
+
+}
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/SysAdminStartAction.java
===================================================================
diff -u -r3f5083ee75c913e287cd44cc93653c1b5012a64b -r4d7c3f5641fd7081af1ed74a2d265242ad69551c
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/SysAdminStartAction.java (.../SysAdminStartAction.java) (revision 3f5083ee75c913e287cd44cc93653c1b5012a64b)
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/SysAdminStartAction.java (.../SysAdminStartAction.java) (revision 4d7c3f5641fd7081af1ed74a2d265242ad69551c)
@@ -66,6 +66,8 @@
links.add(linkBean);
linkBean = new LinkBean("importexcel.do", "admin.user.import");
links.add(linkBean);
+ linkBean = new LinkBean("importv1.do", "admin.importv1.title");
+ links.add(linkBean);
linkBean = new LinkBean("disabledmanage.do", "admin.list.disabled.users");
links.add(linkBean);
linkBean = new LinkBean("loginmaintain.do", "sysadmin.maintain.loginpage");
@@ -84,6 +86,8 @@
links.add(linkBean);
linkBean = new LinkBean("importexcel.do", "admin.user.import");
links.add(linkBean);
+ linkBean = new LinkBean("importv1.do", "admin.importv1.title");
+ links.add(linkBean);
linkBean = new LinkBean("disabledmanage.do", "admin.list.disabled.users");
links.add(linkBean);
} else {
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/dto/V1OrgRightDTO.java
===================================================================
diff -u
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/dto/V1OrgRightDTO.java (revision 0)
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/dto/V1OrgRightDTO.java (revision 4d7c3f5641fd7081af1ed74a2d265242ad69551c)
@@ -0,0 +1,59 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ****************************************************************
+ */
+
+/* $Id$ */
+package org.lamsfoundation.lams.admin.web.dto;
+
+/**
+ * @author jliew
+ *
+ */
+public class V1OrgRightDTO {
+
+ private String orgSid;
+ private String user_right;
+
+ public static final String MEMBERSHIP = "0";
+ public static final String SELECTION = "1";
+ public static final String ADMIN = "2";
+
+ public V1OrgRightDTO(String orgSid, String user_right) {
+ this.orgSid = orgSid;
+ this.user_right = user_right;
+ }
+
+ public String getOrgSid() {
+ return orgSid;
+ }
+
+ public void setOrgSid(String orgSid) {
+ this.orgSid = orgSid;
+ }
+
+ public String getUserRight() {
+ return user_right;
+ }
+
+ public void setUserRight(String user_right) {
+ this.user_right = user_right;
+ }
+}
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/dto/V1OrganisationDTO.java
===================================================================
diff -u
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/dto/V1OrganisationDTO.java (revision 0)
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/dto/V1OrganisationDTO.java (revision 4d7c3f5641fd7081af1ed74a2d265242ad69551c)
@@ -0,0 +1,78 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ****************************************************************
+ */
+
+/* $Id$ */
+package org.lamsfoundation.lams.admin.web.dto;
+
+/**
+ * @author jliew
+ *
+ */
+public class V1OrganisationDTO {
+
+ private String sid;
+ private String name;
+ private String description;
+ private String account_organisation;
+
+ public V1OrganisationDTO() {
+ }
+
+ public V1OrganisationDTO(String sid, String name, String description, String account_organisation) {
+ this.sid = sid;
+ this.name = name;
+ this.description = description;
+ this.account_organisation = account_organisation;
+ }
+
+ public String getSid() {
+ return sid;
+ }
+
+ public void setSid(String sid) {
+ this.sid = sid;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getAccountOrganisation() {
+ return account_organisation;
+ }
+
+ public void setAccountOrganisation(String account_organisation) {
+ this.account_organisation = account_organisation;
+ }
+}
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/dto/V1UserDTO.java
===================================================================
diff -u
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/dto/V1UserDTO.java (revision 0)
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/dto/V1UserDTO.java (revision 4d7c3f5641fd7081af1ed74a2d265242ad69551c)
@@ -0,0 +1,134 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ****************************************************************
+ */
+
+/* $Id$ */
+package org.lamsfoundation.lams.admin.web.dto;
+
+import java.util.List;
+
+import org.apache.commons.lang.StringUtils;
+
+/**
+ * @author jliew
+ *
+ */
+public class V1UserDTO {
+
+ private String login;
+ private String password;
+ private String firstName;
+ private String lastName;
+ private String email;
+ private List roleIds;
+ private List orgRights;
+
+ public static final String ROLE_ANONYMOUS = "0";
+ public static final String ROLE_ADMINISTRATOR = "1";
+ public static final String ROLE_CORE = "2";
+ public static final String ROLE_LEARNER = "3";
+ public static final String ROLE_STAFF = "4";
+ public static final String ROLE_AUTHOR = "5";
+
+ public V1UserDTO() {
+ }
+
+ public V1UserDTO(String login) {
+ this.login = login;
+ }
+
+ public V1UserDTO(String login, String password, String firstName, String lastName) {
+ this.login = login;
+ this.password = password;
+ this.firstName = firstName;
+ this.lastName = lastName;
+ }
+
+ public int getRolesSize() {
+ return roleIds.size();
+ }
+
+ public String getLogin() {
+ return login;
+ }
+
+ public void setLogin(String login) {
+ this.login = login;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public List getRoleIds() {
+ return roleIds;
+ }
+
+ public void setRoleIds(List roleIds) {
+ this.roleIds = roleIds;
+ }
+
+ public List getOrgRights() {
+ return orgRights;
+ }
+
+ public void setOrgRights(List orgRights) {
+ this.orgRights = orgRights;
+ }
+
+ public boolean equals(Object userDTO) {
+ if (userDTO instanceof V1UserDTO) {
+ String login = ((V1UserDTO)userDTO).getLogin();
+ if (StringUtils.equals(login, this.login)) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/form/ImportV1ContentsForm.java
===================================================================
diff -u
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/form/ImportV1ContentsForm.java (revision 0)
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/form/ImportV1ContentsForm.java (revision 4d7c3f5641fd7081af1ed74a2d265242ad69551c)
@@ -0,0 +1,63 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ****************************************************************
+ */
+
+/* $Id$ */
+package org.lamsfoundation.lams.admin.web.form;
+
+import org.apache.struts.action.ActionForm;
+
+/**
+ * @author jliew
+ *
+ * @struts.form name="ImportV1ContentsForm"
+ */
+public class ImportV1ContentsForm extends ActionForm {
+
+ private String[] orgSids;
+ private String[] sessSids;
+ private boolean onlyMembers;
+
+ public String[] getOrgSids() {
+ return orgSids;
+ }
+
+ public void setOrgSids(String[] orgSids) {
+ this.orgSids = orgSids;
+ }
+
+ public String[] getSessSids() {
+ return sessSids;
+ }
+
+ public void setSessSids(String[] sessSids) {
+ this.sessSids = sessSids;
+ }
+
+ public boolean getOnlyMembers() {
+ return onlyMembers;
+ }
+
+ public void setOnlyMembers(boolean onlyMembers) {
+ this.onlyMembers = onlyMembers;
+ }
+
+}
Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/form/ImportV1Form.java
===================================================================
diff -u
--- lams_admin/src/java/org/lamsfoundation/lams/admin/web/form/ImportV1Form.java (revision 0)
+++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/form/ImportV1Form.java (revision 4d7c3f5641fd7081af1ed74a2d265242ad69551c)
@@ -0,0 +1,55 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ****************************************************************
+ */
+
+/* $$Id$$ */
+package org.lamsfoundation.lams.admin.web.form;
+
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.upload.FormFile;
+
+/**
+ * @author jliew
+ *
+ * @struts.form name="ImportV1Form"
+ */
+public class ImportV1Form extends ActionForm {
+
+ private FormFile file;
+ private boolean integrated;
+
+ public FormFile getFile() {
+ return file;
+ }
+
+ public void setFile(FormFile file) {
+ this.file = file;
+ }
+
+ public boolean getIntegrated() {
+ return integrated;
+ }
+
+ public void setIntegrated(boolean integrated) {
+ this.integrated = integrated;
+ }
+
+}
Index: lams_admin/web/WEB-INF/tiles/tiles-defs.xml
===================================================================
diff -u -r3f5083ee75c913e287cd44cc93653c1b5012a64b -r4d7c3f5641fd7081af1ed74a2d265242ad69551c
--- lams_admin/web/WEB-INF/tiles/tiles-defs.xml (.../tiles-defs.xml) (revision 3f5083ee75c913e287cd44cc93653c1b5012a64b)
+++ lams_admin/web/WEB-INF/tiles/tiles-defs.xml (.../tiles-defs.xml) (revision 4d7c3f5641fd7081af1ed74a2d265242ad69551c)
@@ -1,6 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_admin/web/file/lams1_user_org_export.sql
===================================================================
diff -u
--- lams_admin/web/file/lams1_user_org_export.sql (revision 0)
+++ lams_admin/web/file/lams1_user_org_export.sql (revision 4d7c3f5641fd7081af1ed74a2d265242ad69551c)
@@ -0,0 +1,21 @@
+# LAMS 1 integrated server prefixes and orgs
+select prefix, orgid from ext_server_org_map;
+# LAMS 1 user dump
+select tu.login,tu.password,tu.fname,tu.lname,tud.email
+from tbl_user tu, tbl_user_detail tud
+where tu.uid=tud.uid;
+# LAMS 1 organisations dump
+select sid,name,description,account_organisation
+from u_organisation
+where visible=1;
+# LAMS 1 user roles dump
+select tu.login, tug.gid
+from tbl_user tu, tbl_user_group tug
+where tu.uid=tug.uid
+order by tu.login;
+# LAMS 1 user rights dump
+select tu.login, uo.sid, uuo.user_right
+from tbl_user tu, u_organisation uo, u_user_organisation uuo
+where tu.uid=uuo.user_id
+and uuo.organisation_id=uo.sid
+order by tu.login;
\ No newline at end of file
Index: lams_admin/web/import/importv1.jsp
===================================================================
diff -u
--- lams_admin/web/import/importv1.jsp (revision 0)
+++ lams_admin/web/import/importv1.jsp (revision 4d7c3f5641fd7081af1ed74a2d265242ad69551c)
@@ -0,0 +1,43 @@
+<%@ include file="/taglibs.jsp"%>
+<%@ page import="org.lamsfoundation.lams.admin.service.ISpreadsheetService" %>
+
+
+
+ :
+
+
+
+
+
+
+
+
+ - lams1_user_org_export.sql.
+ - :
+
shell> mysql lamsone < lams1_user_org_export.sql -u root -p > lams1_users_orgs.txt
+
+ - lams1_users_orgs.txt
+
+
+
+
+
+
+
+
+
+
+ lams1_users_orgs.txt: |
+ |
+
+
+ |
+ |
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: lams_admin/web/import/importv1contents.jsp
===================================================================
diff -u
--- lams_admin/web/import/importv1contents.jsp (revision 0)
+++ lams_admin/web/import/importv1contents.jsp (revision 4d7c3f5641fd7081af1ed74a2d265242ad69551c)
@@ -0,0 +1,80 @@
+<%@ include file="/taglibs.jsp"%>
+
+
+
+ :
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Only import users that are members of organisations/session classes to be imported
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: lams_admin/web/import/importv1result.jsp
===================================================================
diff -u
--- lams_admin/web/import/importv1result.jsp (revision 0)
+++ lams_admin/web/import/importv1result.jsp (revision 4d7c3f5641fd7081af1ed74a2d265242ad69551c)
@@ -0,0 +1,34 @@
+<%@ include file="/taglibs.jsp"%>
+
+
+
+ :
+
+
+
+
+
+
+
+
+
+
+:
+
+
+
+ |
+ |
+ |
+ |
+
+
+
+ |
+ |
+ |
+ |
+
+
+
+