Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1ContentsSaveAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/Attic/ImportV1ContentsSaveAction.java,v diff -u -r1.2 -r1.3 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1ContentsSaveAction.java 7 Feb 2007 00:19:21 -0000 1.2 +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1ContentsSaveAction.java 7 Feb 2007 04:30:04 -0000 1.3 @@ -243,6 +243,7 @@ // password must be sha1'ed, not md5'ed as in v1; so we use the login as the password newUser.setPassword(HashUtil.sha1(user.getLogin())); + newUser.setChangePassword(true); String flashName = Configuration.get(ConfigurationKeys.DEFAULT_FLASH_THEME); List list = service.findByProperty(CSSThemeVisualElement.class, "name", flashName); Index: lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java,v diff -u -r1.32 -r1.33 --- lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java 29 Nov 2006 23:48:14 -0000 1.32 +++ lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java 7 Feb 2007 04:30:04 -0000 1.33 @@ -97,6 +97,12 @@ setAdminLinks(request); } + // check if user is flagged as needing to change their password + User loggedInUser = getService().getUserByLogin(request.getRemoteUser()); + if (loggedInUser.getChangePassword()) { + return mapping.findForward("password"); + } + String tab = WebUtil.readStrParam(request, "tab", true); if (StringUtils.equals(tab, "profile")) { return mapping.findForward("profile"); Index: lams_central/src/java/org/lamsfoundation/lams/web/PasswordChangeAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/web/PasswordChangeAction.java,v diff -u -r1.10 -r1.11 --- lams_central/src/java/org/lamsfoundation/lams/web/PasswordChangeAction.java 21 Nov 2006 05:09:49 -0000 1.10 +++ lams_central/src/java/org/lamsfoundation/lams/web/PasswordChangeAction.java 7 Feb 2007 04:30:04 -0000 1.11 @@ -119,6 +119,7 @@ { //service.updatePassword(login, HashUtil.sha1(password)); user.setPassword(HashUtil.sha1(password)); + user.setChangePassword(false); service.save(user); // make 'password changed' audit log entry Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/User.hbm.xml =================================================================== RCS file: /usr/local/cvsroot/lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/User.hbm.xml,v diff -u -r1.20 -r1.21 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/User.hbm.xml 23 Sep 2006 12:05:46 -0000 1.20 +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/User.hbm.xml 7 Feb 2007 04:30:02 -0000 1.21 @@ -473,5 +473,20 @@ length="20" + + + + @hibernate.property + column="change_password" + length="1" + not-null="true" + + Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/User.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/usermanagement/User.java,v diff -u -r1.29 -r1.30 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/User.java 1 Nov 2006 04:41:33 -0000 1.29 +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/User.java 7 Feb 2007 04:30:03 -0000 1.30 @@ -147,8 +147,11 @@ /** persistent field */ private Long portraitUuid; + /** persistent field */ + private Boolean changePassword; + /** full constructor */ - public User(String login, String password, String title, String firstName, String lastName, String addressLine1, String addressLine2, String addressLine3, String city, String state, String postcode, String country, String dayPhone, String eveningPhone, String mobilePhone, String fax, String email, Boolean disabledFlag, Date createDate, Workspace workspace, AuthenticationMethod authenticationMethod, CSSThemeVisualElement flashTheme, CSSThemeVisualElement htmlTheme, Set userOrganisations, String chatId, Set learnerProgresses, Set userToolSessions, Set userGroups, Set learningDesigns, Set lessons, Long portraitUuid) { + public User(String login, String password, String title, String firstName, String lastName, String addressLine1, String addressLine2, String addressLine3, String city, String state, String postcode, String country, String dayPhone, String eveningPhone, String mobilePhone, String fax, String email, Boolean disabledFlag, Date createDate, Workspace workspace, AuthenticationMethod authenticationMethod, CSSThemeVisualElement flashTheme, CSSThemeVisualElement htmlTheme, Set userOrganisations, String chatId, Set learnerProgresses, Set userToolSessions, Set userGroups, Set learningDesigns, Set lessons, Long portraitUuid, Boolean changePassword) { this.login = login; this.password = password; this.title = title; @@ -180,6 +183,7 @@ this.learningDesigns = learningDesigns; this.lessons = lessons; this.portraitUuid = portraitUuid; + this.changePassword = changePassword; } /** default constructor */ @@ -810,4 +814,19 @@ public void setPortraitUuid(Long portraitUuid) { this.portraitUuid = portraitUuid; } + + /** + * @hibernate.property + * column="change_password" + * length="1" + * not-null="true" + * + */ + public Boolean getChangePassword() { + return this.changePassword; + } + + public void setChangePassword(Boolean changePassword) { + this.changePassword = changePassword; + } }