平台默认在/BIZ/system/config/sys.config.m配置文件中的配置初始化密码,因此默认的每个人的登录初始密码都是一样的
如果要控制用户登录后修改密码没有修改不让操作功能,可以在登录后控制
如下:
1.在/BIZ/SA/OPM/system/system.process.m中loginAction执行后事件,获取输入的密码跟配置的初始化密码做对比,如果一致可以用session中设置一个值

	public static void systemProcessAfterLoginAction() {
		
		String pwd = (String) ContextHelper.getActionContext().getParameter("pwd");//获取输入的密码
		String curPsw = OrgUtils.saltPassword(pwd);//对输入的密码进行转换
		String defaultPsw = OrgUtils.getDefauletEncryptPassword();//获取的配置文件中配置的初始化密码
		//和初始密码一致
		HttpSession session = ContextHelper.getSessionContext().getSession();
		if (curPsw.toUpperCase().equals(defaultPsw)){
			session.setAttribute("pwdValue", "default");		
		}
		else
			session.setAttribute("pwdValue", "notDefault");
	}
需要注意在BIZ层的构建路径中把apache-tomcat\lib\servlet-api.jar导入,在java中引用
import javax.servlet.http.HttpSession;

2.自己定义一个action获取session中的值返回(本例是通过扩展空间在/BIZ/SA_X/OPM/logic/action下定义的defaultPwdAction)

	<action name="defaultPwdAction" global="false" procedure="defaultPwdProcedure">
		<label language="zh_CN">判断初始密码</label>
	</action>

Procedure的定义

<procedure name="defaultPwdProcedure" code-model="/SA_X/OPM/logic/code" code="OPM.defaultPwd"/>

java的定义

import java.math.*;
import java.sql.*;
import java.util.*;
import javax.servlet.http.HttpSession;
import org.dom4j.*;
import com.justep.system.context.ContextHelper;
import com.justep.system.data.*;

public class OPM {

	public static Boolean defaultPwd(){
		HttpSession session = ContextHelper.getSessionContext().getSession();
		String value = (String) session.getAttribute("pwdValue");
		if(value.equals("default")){
			return true;
		}
		else return false;
	}
}

3.在通过扩展空间在/BIZ/SA_X/OPM/system/system.process.m中动作设置中添加defaultPwdAction,就跟loginAction一样不需要自己分配权限所有的用户都可以操作
4.通过扩展空间修改/UI2/portal/base/base.js
(1).添加引用

var WindowDialog = require("$UI/system/components/justep/windowDialog/windowDialog");

(2).在Model.prototype.loginDialogReceive = function(event) {函数的添加action的调用,打开修改密码的弹出框

	Model.prototype.loginDialogReceive = function(event) {
		this.beforeLogin();
		this.setPortalContext(event.data);
		this.afterLogin();
		var root = this.getRootNode();
		biz.Request.sendBizRequest({
			contentType : "application/json",
			dataType : "application/json",
			process : "/SA/OPM/system/systemProcess",
			activity : "mainActivity",
			action : "defaultPwdAction",
			context : this.getContext(),
			callback : function(resultData) {
				if (resultData && resultData.state && resultData.response) {
					var changePasswordDialog = new WindowDialog({
						src : "$UI/portal/base/login/changePassword.w",
						parentNode : root,
						process : "/portal/process/message/messageProcess",
						activity : "mainActivity",	
						title : '修改密码',
						showTitle : false,
						status: 'normal',
					});;
					changePasswordDialog.open();
				}
			}
		});
	};

$UI/portal/base/login/changePassword.w的定义是直接复制的/UI2/portal/base/changePassword下的changePassword.w和对应的js文件
对/UI2/portal_X/base/login/changePassword.js文件中的修改
(1).添加引用

var MsgDialog = require("$UI/system/components/justep/messageDialog/messageDialog");

(2).代码修改

		var result = this.changePassword(newValue, oldValue);
		if(result.flag === false)
			justep.Util.hint(result.message, {type: 'danger', parent: this.getRootNode()});
		else
			justep.Util.hint("密码修改成功!", {type: 'success', parent: this.getRootNode()});

修改为:

		var result = this.changePassword(newValue, oldValue);
		if (result.flag === false)
			justep.Util.hint(result.message, {
				type : 'danger',
				parent : this.getRootNode()
			});
		else {
			var me = this;
			this.msg = new MsgDialog({
				parentNode : me.getRootNode(),
				type : 'OK',
				message : "密码修改成功,后续请使用新密码登录!",
				title:'修改密码提示'
			});
			this.msg.on('onOK', function(event) {
				me.close();
			}, me);
			this.msg.show();
		}