取得登录用户的信息,要先理解アクセスコンテキスト(AccessContext)的概念。
Intramart提供了几种标准的AccessContext,开发者也可以根据需要自己定义。
定义的方法是实现两个类,然后在%mart%\WEB-INF\conf\context-config目录下加配置文件,这样服务器启动时就会创建该Context。
要取登录得用户的账户信息(ID、Role、Locale等),使用Intramart提供的几种标准的AccessContext之一,アカウントコンテキスト(AccountContext)就可以了。
该Context的配置文件已默认配置好,程序中使用如下方法获取AccountContext实例。
AccountContext acc = jp.co.intra_mart.foundation.context.Contexts.get(AccountContext.class);
System.out.println(acc.getUserCd());
System.out.println(acc.getRoleIds()); // Roles是数组
System.out.println(acc.getLocale());
要取登录得用户的所属组织信息(部署、公司等),用UserContext。
UserContext ucc = jp.co.intra_mart.foundation.context.Contexts.get(UserContext.class);
ucc.getMainDepartment();
关于AccessContext详情,请参照Intramart文档。