This commit is contained in:
shimingxy 2019-06-03 00:08:13 +08:00
parent ff125b0b60
commit 83cbc2ae7f
25 changed files with 378 additions and 898 deletions

View File

@ -47,19 +47,62 @@ login.text.register=\u7528\u6237\u6CE8\u518C
login.password.expired=\u5BC6\u7801\u8FC7\u671F
login.password.expired.tip=\u5BC6\u7801\u8FC7\u671F\uFF0C\u8BF7\u4FEE\u6539\u5BC6\u7801
login.password.oldPassword=\u539F\u5BC6\u7801
login.password.newPassword=\u65B0\u5BC6\u7801
login.password.confirmPassword=\u786E\u8BA4\u65B0\u5BC6\u7801
login.password.initial.change.tip=\u9996\u6B21\u767B\u5F55\uFF0C\u8BF7\u4FEE\u6539\u521D\u59CB\u5316\u5BC6\u7801
login.password.changepassword=\u5BC6\u7801\u4FEE\u6539
login.password.applogin.changepassword=\u5E94\u7528\u767B\u5F55\u5BC6\u7801\u8BBE\u7F6E
userinfo.displayName=\u7528\u6237
userinfo.username=\u767B\u5F55\u540D
login.social.link=\u7ED1\u5B9A
login.social.unlink=\u89E3\u9664
login.social.icon=\u56FE\u6807
login.social.provider=\u4F9B\u5E94\u5546
userinfo.displayName=\u7528\u6237\u540D
userinfo.username=\u767B\u5F55\u8D26\u53F7
userinfo.email=\u90AE\u7BB1\u5730\u5740
userinfo.mobile=\u624B\u673A\u53F7\u7801
userinfo.authnType=\u767B\u5F55\u65B9\u5F0F
userinfo.authnType.authnType.1=\u666E\u901A\u767B\u5F55
userinfo.authnType.authnType.2=\u624B\u673A\u4EE4\u724C
userinfo.authnType.authnType.3=\u77ED\u4FE1\u9A8C\u8BC1
userinfo.authnType.authnType.4=\u90AE\u4EF6\u9A8C\u8BC1
userinfo.authnType.authnType.5=\u65F6\u95F4\u4EE4\u724C
userinfo.authnType.authnType.6=\u8BA1\u6570\u5668\u4EE4\u724C
userinfo.authnType.authnType.7=HOTP\u4EE4\u724C
userinfo.authnType.authnType.8=RSA\u4EE4\u724C
userinfo.authnType.authnType.9=\u6570\u5B57\u8BC1\u4E66
userinfo.authnType.authnType.10=USB Key
login.totp.sharedSecret=\u5171\u4EAB\u5BC6\u7801
login.totp.period=\u5468\u671F
login.totp.digits=\u6570\u5B57
login.totp.crypto=\u52A0\u5BC6\u65B9\u5F0F
login.totp.generate=\u91CD\u65B0\u751F\u6210
login.totp.title=TimeBased One Time Password
login.hotp.sharedSecret=\u5171\u4EAB\u5BC6\u7801
login.hotp.period=\u5468\u671F
login.hotp.digits=\u6570\u5B57
login.hotp.crypto=\u52A0\u5BC6\u65B9\u5F0F
login.hotp.generate=\u91CD\u65B0\u751F\u6210
login.hotp.title=HOTP One Time Password
login.counter.sharedSecret=\u5171\u4EAB\u5BC6\u7801
login.counter.period=\u5468\u671F
login.counter.digits=\u6570\u5B57
login.counter.crypto=\u52A0\u5BC6\u65B9\u5F0F
login.counter.generate=\u91CD\u65B0\u751F\u6210
login.counter.title=Counter Based One Time Password
apps.icon=\u56FE\u6807
apps.name=\u5E94\u7528\u540D\u79F0
apps.protocol=\u8BBF\u95EE\u534F\u8BAE
apps.category=\u7C7B\u578B
button.text.action=\u8BBF\u95EE
button.text.visit=\u8BBF\u95EE
button.text.save=\u4FDD\u5B58
button.text.select=\u8BF7\u9009\u62E9

View File

@ -1,124 +0,0 @@
package org.maxkey.web.contorller;
import java.awt.image.BufferedImage;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.UUID;
import org.apache.mybatis.jpa.persistence.JpaPageResults;
import org.maxkey.dao.service.UserInfoService;
import org.maxkey.domain.UserInfo;
import org.maxkey.util.DateUtils;
import org.maxkey.util.RQCodeUtils;
import org.maxkey.web.WebContext;
import org.maxkey.web.endpoint.ImageEndpoint;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping(value={"/contact"})
public class ContactsController {
final static Logger _logger = LoggerFactory.getLogger(ContactsController.class);
@Autowired
private UserInfoService userInfoService;
@RequestMapping(value={"/list"})
public ModelAndView forward(){
return new ModelAndView("contact/contactList");
}
@RequestMapping(value={"/grid"})
@ResponseBody
public JpaPageResults<UserInfo> forwardUserInfoList(@ModelAttribute("userinfo") UserInfo userinfo){
return userInfoService.queryPageResults(userinfo);
}
@RequestMapping(value={"/details/{id}"})
public ModelAndView details(@PathVariable("id") String id) {
ModelAndView modelAndView=new ModelAndView("contact/details");
UserInfo userInfo=new UserInfo();
userInfo.setId(id);
userInfo=userInfoService.load(userInfo);
WebContext.getSession().setAttribute(userInfo.getId(), userInfo.getPicture());
modelAndView.addObject("rqcode", RQVCard(userInfo));
modelAndView.addObject("model", userInfo);
return modelAndView;
}
/*
* BEGIN:VCARD
* VERSION:3.0
* N:Gump;Forrest;;Mr.
* FN:Forrest Gump
* ORG:Bubba Gump Shrimp Co.
* TITLE:Shrimp Man
* PHOTO;VALUE=URL;TYPE=GIF:http://www.example.com/dir_photos/my_photo.gif
* TEL;TYPE=WORK,VOICE:(111) 555-12121
* TEL;TYPE=HOME,VOICE:(404) 555-1212
* ADR;TYPE=WORK:;;100 Waters Edge;Baytown;LA;30314;United States of America
* LABEL;TYPE=WORK:100 Waters Edge\nBaytown, LA 30314\nUnited States of America
* ADR;TYPE=HOME:;;42 Plantation St.;Baytown;LA;30314;United States of America
* LABEL;TYPE=HOME:42 Plantation St.\nBaytown, LA 30314\nUnited States of America
* EMAIL;TYPE=PREF,INTERNET:forrestgump@example.com
* REV:2008-04-24T19:52:43Z
* END:VCARD
* BEGIN:VCARD
* VERSION:4.0
* N:Gump;Forrest;;;
* FN:Forrest Gump
* ORG:Bubba Gump Shrimp Co.
* TITLE:Shrimp Man
* PHOTO;MEDIATYPE=image/gif:http://www.example.com/dir_photos/my_photo.gif
* TEL;TYPE=work,voice;VALUE=uri:tel:+1-111-555-1212
* TEL;TYPE=home,voice;VALUE=uri:tel:+1-404-555-1212
* ADR;TYPE=work;LABEL="100 Waters Edge\nBaytown, LA 30314\nUnited States of America"
* :;;100 Waters Edge;Baytown;LA;30314;United States of America
* ADR;TYPE=home;LABEL="42 Plantation St.\nBaytown, LA 30314\nUnited States of America"
* :;;42 Plantation St.;Baytown;LA;30314;United States of America
* EMAIL:forrestgump@example.com
* REV:20080424T195243Z
* END:VCARD
*/
public String RQVCard(UserInfo userInfo){
String strRQVCard =
"BEGIN:VCARD\n" +
"VERSION:3.0\n" +
"N:"+userInfo.getDisplayName()+"\n" +
"ORG:"+userInfo.getOrganization()+"\n" +
"TITLE:"+userInfo.getJobTitle()+"\n" +
"TEL;TYPE=WORK,VOICE:"+userInfo.getMobile()+"\n" +
"ADR;TYPE=WORK:"+userInfo.getWorkStreetAddress()+"\n" +
"EMAIL:"+userInfo.getEmail()+"\n" +
"URL:"+userInfo.getWebSite()+"\n" +
"GENDER:"+(userInfo.getGender()==1?"F":"M")+"\n" +
"REV:"+DateUtils.toUtc(new Date())+"\n" +
"END:VCARD\n" ;
_logger.debug("RQVCard : \n"+strRQVCard);
BufferedImage bufferedImage;
try {
bufferedImage = RQCodeUtils.write2BufferedImage(new String(strRQVCard.getBytes("UTF-8"),"iso-8859-1"), "gif", 300, 300);
byte[] imageByte=ImageEndpoint.bufferedImage2Byte(bufferedImage);
String uuid=UUID.randomUUID().toString().toLowerCase();
WebContext.getSession().setAttribute(uuid, imageByte);
return uuid;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
}

View File

@ -27,7 +27,7 @@ import org.springframework.web.servlet.ModelAndView;
*
*/
@Controller
@RequestMapping(value = { "/otp" })
@RequestMapping(value = { "/safe/otp" })
public class OneTimePasswordController {
final static Logger _logger = LoggerFactory.getLogger(OneTimePasswordController.class);
@ -78,7 +78,7 @@ public class OneTimePasswordController {
userInfo.setSharedSecret(sharedSecret);
userInfoService.changeSharedSecret(userInfo);
WebContext.setUserInfo(userInfo);
return WebContext.redirect("/otp/timebased");
return WebContext.redirect("/safe/otp/timebased");
}
@ -112,7 +112,7 @@ public class OneTimePasswordController {
userInfo.setSharedCounter("0");
userInfoService.changeSharedSecret(userInfo);
WebContext.setUserInfo(userInfo);
return WebContext.redirect("/otp/counterbased");
return WebContext.redirect("/safe/otp/counterbased");
}
@RequestMapping(value={"/hotp"})
@ -144,7 +144,7 @@ public class OneTimePasswordController {
userInfo.setSharedCounter("0");
userInfoService.changeSharedSecret(userInfo);
WebContext.setUserInfo(userInfo);
return WebContext.redirect("/otp/hotp");
return WebContext.redirect("/safe/otp/hotp");
}

View File

@ -145,73 +145,21 @@ public class SafeController {
@ResponseBody
@RequestMapping(value="/setting")
public Message setting(
@RequestParam("authnType") String authnType) {
@RequestParam("authnType") String authnType,
@RequestParam("mobile") String mobile,
@RequestParam("mobileVerify") String mobileVerify,
@RequestParam("email") String email,
@RequestParam("emailVerify") String emailVerify) {
UserInfo userInfo =WebContext.getUserInfo();
userInfo.setAuthnType(Integer.parseInt(authnType));
userInfoService.changeAuthnType(userInfo);
return new Message(WebContext.getI18nValue(OPERATEMESSAGE.UPDATE_SUCCESS),MessageType.success);
}
@RequestMapping(value="/forward/question")
public ModelAndView fowardQuestion() {
ModelAndView modelAndView=new ModelAndView("safe/question");
modelAndView.addObject("model", WebContext.getUserInfo());
return modelAndView;
}
@ResponseBody
@RequestMapping(value="/question")
public Message question(
@RequestParam("passwordQuestion") String passwordQuestion,
@RequestParam("passwordAnswer") String passwordAnswer) {
UserInfo userInfo =WebContext.getUserInfo();
userInfo.setPasswordQuestion(userInfo.getPasswordQuestion());
userInfo.setPasswordAnswer(userInfo.getPasswordAnswer());
userInfoService.changePasswordQuestion(userInfo);
return new Message(WebContext.getI18nValue(OPERATEMESSAGE.UPDATE_SUCCESS),MessageType.success);
}
@RequestMapping(value="/forward/mobile")
public ModelAndView fowardMobile() {
ModelAndView modelAndView=new ModelAndView("safe/mobile");
modelAndView.addObject("model", WebContext.getUserInfo());
return modelAndView;
}
@ResponseBody
@RequestMapping(value="/mobile")
public Message mobile(
@RequestParam("mobile") String mobile,
@RequestParam("verify") String verify) {
UserInfo userInfo =WebContext.getUserInfo();
userInfo.setMobile(mobile);
userInfoService.changeMobile(userInfo);
return new Message(WebContext.getI18nValue(OPERATEMESSAGE.UPDATE_SUCCESS),MessageType.success);
}
@RequestMapping(value="/forward/email")
public ModelAndView fowardEmail() {
ModelAndView modelAndView=new ModelAndView("safe/email");
modelAndView.addObject("model", WebContext.getUserInfo());
return modelAndView;
}
@ResponseBody
@RequestMapping(value="/email")
public Message email(
@RequestParam("email") String email,
@RequestParam("verify") String verify) {
UserInfo userInfo =WebContext.getUserInfo();
userInfo.setEmail(email);
userInfoService.changeEmail(userInfo);
return new Message(WebContext.getI18nValue(OPERATEMESSAGE.UPDATE_SUCCESS),MessageType.success);
}

View File

@ -47,19 +47,62 @@ login.text.register=\u7528\u6237\u6CE8\u518C
login.password.expired=\u5BC6\u7801\u8FC7\u671F
login.password.expired.tip=\u5BC6\u7801\u8FC7\u671F\uFF0C\u8BF7\u4FEE\u6539\u5BC6\u7801
login.password.oldPassword=\u539F\u5BC6\u7801
login.password.newPassword=\u65B0\u5BC6\u7801
login.password.confirmPassword=\u786E\u8BA4\u65B0\u5BC6\u7801
login.password.initial.change.tip=\u9996\u6B21\u767B\u5F55\uFF0C\u8BF7\u4FEE\u6539\u521D\u59CB\u5316\u5BC6\u7801
login.password.changepassword=\u5BC6\u7801\u4FEE\u6539
login.password.applogin.changepassword=\u5E94\u7528\u767B\u5F55\u5BC6\u7801\u8BBE\u7F6E
userinfo.displayName=\u7528\u6237
userinfo.username=\u767B\u5F55\u540D
login.social.link=\u7ED1\u5B9A
login.social.unlink=\u89E3\u9664
login.social.icon=\u56FE\u6807
login.social.provider=\u4F9B\u5E94\u5546
userinfo.displayName=\u7528\u6237\u540D
userinfo.username=\u767B\u5F55\u8D26\u53F7
userinfo.email=\u90AE\u7BB1\u5730\u5740
userinfo.mobile=\u624B\u673A\u53F7\u7801
userinfo.authnType=\u767B\u5F55\u65B9\u5F0F
userinfo.authnType.authnType.1=\u666E\u901A\u767B\u5F55
userinfo.authnType.authnType.2=\u624B\u673A\u4EE4\u724C
userinfo.authnType.authnType.3=\u77ED\u4FE1\u9A8C\u8BC1
userinfo.authnType.authnType.4=\u90AE\u4EF6\u9A8C\u8BC1
userinfo.authnType.authnType.5=\u65F6\u95F4\u4EE4\u724C
userinfo.authnType.authnType.6=\u8BA1\u6570\u5668\u4EE4\u724C
userinfo.authnType.authnType.7=HOTP\u4EE4\u724C
userinfo.authnType.authnType.8=RSA\u4EE4\u724C
userinfo.authnType.authnType.9=\u6570\u5B57\u8BC1\u4E66
userinfo.authnType.authnType.10=USB Key
login.totp.sharedSecret=\u5171\u4EAB\u5BC6\u7801
login.totp.period=\u5468\u671F
login.totp.digits=\u6570\u5B57
login.totp.crypto=\u52A0\u5BC6\u65B9\u5F0F
login.totp.generate=\u91CD\u65B0\u751F\u6210
login.totp.title=TimeBased One Time Password
login.hotp.sharedSecret=\u5171\u4EAB\u5BC6\u7801
login.hotp.period=\u5468\u671F
login.hotp.digits=\u6570\u5B57
login.hotp.crypto=\u52A0\u5BC6\u65B9\u5F0F
login.hotp.generate=\u91CD\u65B0\u751F\u6210
login.hotp.title=HOTP One Time Password
login.counter.sharedSecret=\u5171\u4EAB\u5BC6\u7801
login.counter.period=\u5468\u671F
login.counter.digits=\u6570\u5B57
login.counter.crypto=\u52A0\u5BC6\u65B9\u5F0F
login.counter.generate=\u91CD\u65B0\u751F\u6210
login.counter.title=Counter Based One Time Password
apps.icon=\u56FE\u6807
apps.name=\u5E94\u7528\u540D\u79F0
apps.protocol=\u8BBF\u95EE\u534F\u8BAE
apps.category=\u7C7B\u578B
button.text.action=\u8BBF\u95EE
button.text.visit=\u8BBF\u95EE
button.text.save=\u4FDD\u5B58
button.text.select=\u8BF7\u9009\u62E9

View File

@ -1,96 +0,0 @@
<%@ page contentType="text/html; charset=UTF-8" import="java.util.Map,java.util.LinkedHashMap" %>
<%@ page import="org.maxkey.web.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="s" uri="http://www.connsec.com/tags" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<script type="text/javascript">
function genderFormatter(value, options, rData){
if(value==1){
return '<s:Locale code="userinfo.gender.female" />';
}else{
return '<s:Locale code="userinfo.gender.male" />';
}
};
function onlineFormatter(value, options, rData){
if(value==1){
return '<s:Locale code="userinfo.online.online" />';
}else{
return '<s:Locale code="userinfo.online.offline" />';
}
};
$(function () {
$("#viewDetails").on("click",function(){
var selectId = $.gridSelIds("#list");
if(selectId == null || selectId == "") {
$.alert({content:$.platform.messages.select.alertText});
return false;
}
$.window({
url : "<s:Base/>/contact/details/"+selectId,//window url
title : "<s:Locale code="access.security.contact.businessCard"/>",//title
width : 600,//width
height : 350//height
});//open window
});
});
</script>
<div id="tool_box">
<table class="datatable">
<tr>
<td width="120px">
<s:Locale code="userinfo.username"/>:
</td>
<td width="375px">
<form id="basic_search_form">
<input name="username" type="text" style ="width:150px">
<input class="button primary" id="searchBtn" type="button" size="50" value="<s:Locale code="button.text.search"/>">
<input class="button" id="advancedSearchExpandBtn" type="button" size="50" value="<s:Locale code="button.text.expandsearch"/>" expandValue="<s:Locale code="button.text.expandsearch"/>" collapseValue="<s:Locale code="button.text.collapsesearch"/>">
</form>
</td>
<td colspan="2">
<div id="tool_box_right">
<input class="button" id="viewDetails" type="button" value="<s:Locale code="access.security.contact.businessCard"/>" />
</div>
</td>
</tr>
</table>
</div>
<div id="advanced_search">
<form id="advanced_search_form">
<table class="datatable">
<tr>
<td width="120px"><s:Locale code="userinfo.displayName"/></td>
<td width="360px">
<input name="displayName" type="text" >
</td>
<td width="120px"><s:Locale code="userinfo.department"/></td>
<td width="360px">
<input type="hidden" id="departmentId" name="departmentId" title="" value=""/>
<input style="width:70%" type="text" id="department" name="department" title="" value=""/>
<s:Dialog text="button.text.select" title="department" url="/orgs/orgsSelect/deptId/department" width="300" height="400" />
</td>
</tr>
</table>
</form>
</div>
<s:Grid id="list" url="/contact/grid" multiselect="false">
<s:Column width="0" field="id" title="id" hidden="true"/>
<s:Column width="70" field="username" title="userinfo.username"/>
<s:Column width="80" field="employeeNumber" title="userinfo.employeeNumber"/>
<s:Column width="100" field="displayName" title="userinfo.displayName"/>
<s:Column width="100" field="department" title="userinfo.department"/>
<s:Column width="100" field="jobTitle" title="userinfo.jobTitle"/>
<s:Column width="50" field="gender" title="userinfo.gender" formatter="genderFormatter"/>
<s:Column width="100" field="workEmail" title="userinfo.workEmail" />
<s:Column width="100" field="workPhoneNumber" title="userinfo.workPhoneNumber" />
<s:Column width="100" field="mobile" title="userinfo.mobile" />
<s:Column width="50" field="online" title="userinfo.online" formatter="onlineFormatter"/>
</s:Grid>

View File

@ -1,64 +0,0 @@
<%@ page contentType="text/html; charset=UTF-8" import="java.util.Map,java.util.LinkedHashMap" %>
<%@ page import="org.maxkey.web.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="s" uri="http://www.connsec.com/tags" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<script type="text/javascript">
$(function () {
$("#rqcodescanBtn").on("click",function(){
if($("#rqcodescanBtn").hasClass("onscan")){
$("#nameCode").show();
$("#rqcodePicture").hide();
$("#rqcodescanBtn").removeClass("onscan");
}else{
$("#nameCode").hide();
$("#rqcodePicture").show();
$("#rqcodescanBtn").addClass("onscan");
}
});
});
</script>
<table style="width:600px;border:1px solid #e5e5e5;">
<tr>
<td style="width:200px;">
<c:if test="${null==model.picture}">
<img id="picture" width="200px" height="200px" src="<c:url value="/images/uploadimage.jpg"/>" />
</c:if>
<c:if test="${null!=model.picture}">
<img id="picture" width="200px" height="200px" src="<c:url value="/image/${model.id}"/>" />
</c:if>
<br>
<input class="button" id="rqcodescanBtn" type="button" value="<s:Locale code="access.security.contact.rqcode"/>" />
</td>
<td>
<img style="display:none" id="rqcodePicture" width="300px" height="300px" src="<c:url value="/image/${rqcode}"/>" />
<table id="nameCode" style="width:400px;">
<tr>
<td><s:Locale code="userinfo.displayName"/></td><td><input readonly type="text" title="" value="${model.displayName}"/></td>
</tr>
<tr>
<td><s:Locale code="userinfo.jobTitle"/></td><td><input readonly type="text" title="" value="${model.jobTitle}"/></td>
</tr>
<tr>
<td><s:Locale code="userinfo.department"/></td><td><input readonly type="text" title="" value="${model.department}"/></td>
</tr>
<tr>
<td><s:Locale code="userinfo.mobile"/></td><td><input readonly type="text" title="" value="${model.mobile}"/></td>
</tr>
<tr>
<td><s:Locale code="userinfo.email"/></td><td><input readonly type="text" title="" value="${model.email}"/></td>
</tr>
<tr>
<td><s:Locale code="userinfo.webSite"/></td><td><input readonly type="text" title="" value="${model.webSite}"/></td>
</tr>
<tr>
<td><s:Locale code="userinfo.organization"/></td><td><input readonly type="text" title="" value="${model.organization}"/></td>
</tr>
<tr>
<td><s:Locale code="userinfo.workStreetAddress"/></td><td><input readonly type="text" title="" value="${model.workStreetAddress}"/></td>
</tr>
</table>
</td>
</tr>
</table>

View File

@ -1,77 +1,105 @@
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page language="java" import="org.maxkey.web.*" %>
<%@ page language="java" import="org.maxkey.domain.*"%>
<%@ page language="java" import="org.maxkey.domain.userinfo.*"%>
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<div id="nav_primay_content" class="menuprimary">
<div class="menucontainer">
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page language="java" import="org.maxkey.web.*" %>
<%@ page language="java" import="org.maxkey.domain.*"%>
<%@ page language="java" import="org.maxkey.domain.userinfo.*"%>
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<div id="nav_primary" >
<div id="nav_primary" class="menuprimary">
<ul >
<li id="nav_primay_10" class="nav_primay_level primaryleft" xpath="">
<a href="<s:Base/>/appList">我的应用</a>
</li>
<li id="nav_primay_11" class="nav_primay_level primaryleft" xpath="">
<a href="<s:Base/>/appConfigList">应用配置</a>
</li>
<li id="nav_primay_12" class="nav_primay_level primaryleft" xpath="">
<a href="<s:Base/>/socialsignon/list">认证关联</a>
</li>
<li id="nav_primay_13" class="nav_primay_level primaryleft" xpath="">
<a href="<s:Base/>/safe/forward/setting">安全设置</a>
<div id="nav_child_1301" class="nav_second_child">
<ul>
<li id="nav_second_1301" class="nav_second_level">
<a href="<s:Base/>/safe/forward/setting">安全设置</a>
</li>
</ul>
<ul>
<li id="nav_second_1302" class="nav_second_level">
<a href="<s:Base/>/safe/forward/changeAppLoginPasswod">应用登录密码</a>
</li>
</ul>
<ul>
<li id="nav_second_1303" class="nav_second_level">
<a href="<s:Base/>/safe/otp/timebased">时间令牌</a>
</li>
</ul>
</div>
</li>
<li id="nav_primay_14" class="nav_primay_level primaryleft" xpath="">
<a href="<s:Base/>/profile/forwardBasic">我的资料</a>
<div id="nav_child_1401" class="nav_second_child">
<ul>
<li id="nav_second_1401" class="nav_second_level">
<a href="<s:Base/>/profile/forwardBasic">基本资料</a>
</li>
</ul>
<ul>
<li id="nav_second_1402" class="nav_second_level">
<a href="<s:Base/>/profile/forwardCompany">组织信息</a>
</li>
</ul>
<ul>
<li id="nav_second_1403" class="nav_second_level">
<a href="<s:Base/>/profile/forwardHome">个人资料</a>
</li>
</ul>
<ul>
<li id="nav_second_1404" class="nav_second_level">
<a href="<s:Base/>/profile/forwardExtra">扩展信息</a>
</li>
</ul>
</div>
</li>
<li id="nav_primay_15" class="nav_primay_level primaryleft" xpath="">
<a href="<s:Base/>/logs/loginHistoryList">日志审计</a>
<div id="nav_child_1501" class="nav_second_child">
<ul>
<li id="nav_second_1501" class="nav_second_level">
<a href="<s:Base/>/logs/loginHistoryList">登录日志</a>
</li>
</ul>
<ul>
<li id="nav_second_1502" class="nav_second_level">
<a href="<s:Base/>/logs/loginAppHistoryList">访问日志</a>
</li>
</ul>
<ul>
<li id="nav_second_1503" class="nav_second_level">
<a href="<s:Base/>/logs/list">操作日志</a>
</li>
</ul>
</div>
</li>
<%
String menuId=request.getParameter("mnid")==null?"":request.getParameter("mnid").toString();
String selectMenuId=menuId;
if(WebContext.getNavigations()!=null){
List<Navigations> listNavs=WebContext.getNavigations();//100000000000
StringBuffer navsStr=new StringBuffer("");
int navCount=0;
for (Navigations nav : listNavs){
if(nav.getpId().equals("110000000000")){
//bulid child menu
StringBuffer childNavStr=new StringBuffer("");
for (Navigations childNav : listNavs){
if(nav.getId().equals(childNav.getpId())){
if(menuId.equals(childNav.getId())){selectMenuId=nav.getId();}
String childNavName=WebContext.getI18nValue("navs."+childNav.getId());
if(childNavName == null){childNavName = childNav.getName();}
childNavStr.append("\n\t\t\t<li id='nav_second_").append(childNav.getId()).append("' ").append(" class='nav_second_level' ").append(" xpath='").append(childNav.getxPath()).append("'>");;
childNavStr.append("<a href='").append(request.getContextPath()).append("/").append(childNav.getUrl()).append("?mnid=").append(childNav.getId()).append("'>");
childNavStr.append(childNavName);
childNavStr.append("</a>");
childNavStr.append("</li>");
}
}
//childNavStr.append("</ul>");
//end of child menu
//bulid primary menu
String navName=WebContext.getI18nValue("navs."+nav.getId());
if(navName == null){navName = nav.getName();}
navsStr.append("<li id='nav_primay_").append(nav.getId());
if(navCount ++ ==0){
navsStr.append("' class='nav_primay_level primaryleft' ");
}else{
navsStr.append("' class='nav_primay_level' ");
}
navsStr.append(" xpath='").append(nav.getxPath()).append("'>");
navsStr.append("<a ").append((selectMenuId.equals(nav.getId())?"class='selected'":"")).append(" href='").append(request.getContextPath()).append("/").append(nav.getUrl()).append("?mnid=").append(nav.getId()).append("'>");
navsStr.append(navName);
navsStr.append("</a>");
//end of primary menu
//append child menu div
navsStr.append("\n\t<div id='nav_child_").append(nav.getId()).append("' class='nav_second_child'>");
navsStr.append("\n\t\t<ul>");
if(childNavStr.length()>10){
navsStr.append(childNavStr);
}
navsStr.append("</ul>");
navsStr.append("</div>\n");
navsStr.append("</li>\n");
}
}
out.println(navsStr);
}
%>
</ul>
</div>
</div>
<div id="nav_second" style="clear: left"><div class='menusecond'></div><br style='clear: left' /></div>
<script>
$(function(){
function displaySecondNavs(menuId){
$("#nav_second").html("<div class='menusecond'>"+$("#"+menuId+" .nav_second_child").html()+"</div><br style='clear: left' />");
if($("#"+menuId+" .nav_second_child").html()){
$("#nav_second").html("<div class='menusecond'>"+$("#"+menuId+" .nav_second_child").html()+"</div><br style='clear: left' />");
}else{
$("#nav_second").html("");
}
}
$("#nav_primay_content ul li").mouseover(function(){
$(".menuprimary ul li").mouseover(function(){
displaySecondNavs(this.id);
});
<%if(menuId.length()>5){%>displaySecondNavs("nav_primay_<%=selectMenuId%>");<%}%>
});
</script>

View File

@ -32,7 +32,11 @@
<img src='<s:Base/>/images/list_sel.png' style="width=:31px;height:31px;border:0;">
</td>
<%} %>
<td id="changepassword" nowrap>
<a href="<s:Base/>/safe/forward/changePasswod">
<div style="float:right;" >&nbsp;&nbsp;<s:Locale code="login.password.changepassword"/>&nbsp;&nbsp;</div>
</a>
</td>
<td id="manage" nowrap>
<a target="_blank" href="<s:Base/>/authz/manage">
<div style="float:right;" >&nbsp;&nbsp;<s:Locale code="global.text.manage"/>&nbsp;&nbsp;</div>

View File

@ -217,11 +217,11 @@ $(function(){
<%}%>
<tr>
<td><s:Locale code="login.text.username"/></td>
<td><input type='text' id='j_username' name='j_username' value="" tabindex="1"/></td>
<td><input type='text' id='j_username' name='j_username' value="admin" tabindex="1"/></td>
</tr>
<tr>
<td><s:Locale code="login.text.password"/></td>
<td><input type='password' id='j_password' name='j_password' value="" tabindex="2"/></td>
<td><input type='password' id='j_password' name='j_password' value="admin" tabindex="2"/></td>
</tr>
<c:if test="${'true'==isCaptcha}">
<tr>

View File

@ -6,11 +6,17 @@
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<jsp:include page="../layout/header.jsp"></jsp:include>
<jsp:include page="../layout/common.css.jsp"></jsp:include>
<jsp:include page="../layout/common.js.jsp"></jsp:include>
<!DOCTYPE HTML >
<html>
<head>
<jsp:include page="../layout/header.jsp"></jsp:include>
<jsp:include page="../layout/common.css.jsp"></jsp:include>
<jsp:include page="../layout/common.js.jsp"></jsp:include>
</head>
<body>
<jsp:include page="../layout/top.jsp"></jsp:include>
<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
<%if(WebContext.getUserInfo().getGridList()==0) {%>
<table class="datatable">
<c:forEach begin="1" end="${(fn:length(appList)+4)/5}" var="num">
@ -94,4 +100,6 @@
<%} %>
<div id="footer">
<jsp:include page="../layout/footer.jsp"></jsp:include>
</div>
</div>
<body>
</html>

View File

@ -1,204 +0,0 @@
<%@ page contentType="text/html; charset=UTF-8" import="java.util.Map,java.util.LinkedHashMap" %>
<%@ page import="org.maxkey.web.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="s" uri="http://www.connsec.com/tags" %>
<script type="text/javascript">
function onClick (event, treeId, treeNode) {
$("#actionForm").clearForm();
$("#actionForm").json2form({data:treeNode.data});
$("#_method").val("put");
$("#status").val("1");
$(".select_t").selectCss();
}
$(function () {
$("#addChildBtn").click(function(){
var nodes = $.fn.zTree.getZTreeObj("orgsTree").getSelectedNodes();
if (nodes.length == 0) {
$.alert({content:"<s:Locale code="system.menus.alert.select.pmenu" />"});
return;
}
$("#actionForm").clearForm();
$("#pId").val(nodes[0].data.id);
$("#pName").val(nodes[0].data.name);
$("#sortOrder").val(1);
$("#status").val("1");
$("#_method").val("post");
});
$("#saveBtn").click(function(){
if($("#_method").val()=="put"){
$("#actionForm").attr("action",'<c:url value="/orgs/update"/>');
}else{
$("#actionForm").attr("action",'<c:url value="/orgs/add"/>');
}
var xpath = $.fn.zTree.getZTreeObj("orgsTree").getNodeByParam("id",$("#pId").val()).data.xPath;
if(xpath=="<%=WebContext.getSystemNavRootId()%>"||xpath==undefined||xpath==""){
xpath ="/"+$("#id").val();
}else{
xpath = xpath+"/"+$("#id").val();
}
//alert(xpath);
$("#xPath").val(xpath);
if($("#_method").val()=="post"){
var node=$("#actionForm").serializeObject();
node.data=$("#actionForm").serializeObject();
delete node['url'];
$.fn.zTree.getZTreeObj("orgsTree").addNodes(
$.fn.zTree.getZTreeObj("orgsTree").getSelectedNodes()[0],node);
}else{
var node=$("#actionForm").serializeObject();
node.data=$("#actionForm").serializeObject();
node=$.extend( $.fn.zTree.getZTreeObj("orgsTree").getSelectedNodes()[0],node);
delete node['url'];
$.fn.zTree.getZTreeObj("orgsTree").updateNode(node);
}
$('#actionForm').submit();
});
$("#deleteBtn").click(function(){
$.post('<c:url value="/orgs/delete"/>',{ id:$("#id").val(),_method:"delete"}, function(data) {
$.fn.zTree.getZTreeObj("orgsTree").removeNode($.fn.zTree.getZTreeObj("orgsTree").getSelectedNodes()[0]);
$.alert({content:data.message});
});
});
});
</script>
<!-- content -->
<table class="datatable" width="100%" >
<tr>
<td valign="top" class="td_1" style="vertical-align: top;">
<s:Tree rootId="<%=WebContext.getSystemNavRootId()%>" url="/orgs/tree" id="orgsTree" onClick="onClick"/>
</td>
<td valign="top" class="td_1" style="vertical-align: top;">
<div id="orgsTable" style="PADDING:0;MARGIN: 0;width:650px"></div>
<form id="actionForm" action='<c:url value="/orgs/add"/>' method="post">
<table>
<tr>
<td>
<ul class="switch_tab" style="width:100%" >
<li id="switch_common" value="table_switch_common" style="width:49%" class="switch_tab_class switch_tab_current"><a href="javascript:void(0);"><s:Locale code="org.tab.basic" /></a></li>
<li id="switch_extra" value="table_switch_extra" style="width:49%" class="switch_tab_class"><a href="javascript:void(0);"><s:Locale code="org.tab.extra" /></a></li>
</ul>
</td>
</tr>
<tr><td>
<table id="table_switch_common" class="datatable" width="600px">
<tr style="display:none">
<th ><input type="text" id="status" type="hidden" name="status" value="1"/>
<input type="text" id="_method" type="hidden" name="_method" value="put"/></th>
<td></td>
</tr>
<tr >
<th ><s:Locale code="org.pid" /></th>
<td><span class="intspan"><input type="text" id="pId" name="pId" size="80" class="int"/></span></td>
</tr>
<tr>
<th width="200px"><s:Locale code="org.pname" /></th>
<td><span class="intspan"><input type="text" id="pName" name="pName" size="80" class="int"/></span></td>
</tr>
<tr >
<th ><s:Locale code="org.id" /></th>
<td><span class="intspan"><input type="text" id="id" name="id" size="80" class="int"/></span></td>
</tr>
<tr>
<th ><s:Locale code="org.name" /></th>
<td><span class="intspan"><input type="text" id="name" name="name" size="80" class="int"/></span></td>
</tr>
<tr>
<th ><s:Locale code="org.fullname" /></th>
<td><span class="intspan"><input type="text" id="fullName" name="fullName" size="80" class="int"/></span></td>
</tr>
<tr>
<th ><s:Locale code="org.type" /></th>
<td><input type="text" id="type" name="type" size="80" class="int"/></td>
</tr>
<tr>
<th ><s:Locale code="org.division" /></th>
<td><span class="intspan"><input type="text" id="division" name="division" size="80" class="int"/></span></td>
</tr>
<tr>
<th >
<s:Locale code="common.text.sortorder" />
</th>
<td><span class="intspan"><input type="text" id="sortOrder" name="sortOrder" size="80" class="int"/></span></td>
</tr>
<tr style="display:none">
<th ><s:Locale code="org.xpath" />
</th>
<td><span class="intspan"><input type="text" id="xPath" name="xPath" size="80" class="int"/></span></td>
</tr>
<tr>
<th ><s:Locale code="common.text.description" /></th>
<td><span class="intspan"><input type="text" id="description" name="description" size="80" class="int"/></span></td>
</tr>
</table>
<table id="table_switch_extra" class="datatable" width="600px" style="display:none">
<tr>
<th ><s:Locale code="org.contact" /></th>
<td><span class="intspan"><input type="text" id="contact" name="contact" size="80" class="int"/></span></td>
</tr>
<tr>
<th width="200px"><s:Locale code="org.phone" /></th>
<td><span class="intspan"><input type="text" id="phone" name="phone" size="80" class="int"/></span></td>
</tr>
<tr>
<th ><s:Locale code="org.email" /></th>
<td><span class="intspan"><input type="text" id="email" name="email" size="80" class="int"/></span></td>
</tr>
<tr>
<th ><s:Locale code="org.fax" /></th>
<td><span class="intspan"><input type="text" id="fax" name="fax" size="80" class="int"/></span></td>
</tr>
<tr>
<th ><s:Locale code="org.country" /></th>
<td><span class="intspan"><input type="text" id="country" name="country" size="80" class="int"/></span></td>
</tr>
<tr>
<th ><s:Locale code="org.region" /></th>
<td><span class="intspan"><input type="text" id="region" name="region" size="80" class="int"/></span></td>
</tr>
<tr>
<th ><s:Locale code="org.locality" /></th>
<td><span class="intspan"><input type="text" id="locality" name="locality" size="80" class="int"/></span></td>
</tr>
<tr>
<th ><s:Locale code="org.street" /></th>
<td><span class="intspan"><input type="text" id="street" name="street" size="80" class="int"/></span></td>
</tr>
<tr>
<th ><s:Locale code="org.address" /></th>
<td><span class="intspan"><input type="text" id="address" name="address" size="80" class="int"/></span></td>
</tr>
<tr>
<th ><s:Locale code="org.postalcode" /></th>
<td><span class="intspan"><input type="text" id="postalCode" name="postalCode" size="80" class="int"/></span></td>
</tr>
</table>
</td></tr>
<tr><td nowrap align="center">
<input id="addChildBtn" class="button" type="button" style="width:120px" value="<s:Locale code="button.text.add" />"/>
<input id="saveBtn" class="button" type="button" style="width:100px" value="<s:Locale code="button.text.save" />"/>
<input id="deleteBtn" class="button" type="button" style="width:100px" value="<s:Locale code="button.text.delete" />"/>
</td></tr>
</table>
</form>
</td>
</tr>
</table>

View File

@ -1,26 +0,0 @@
<%@ page contentType="text/html; charset=UTF-8" import="java.util.Map,java.util.LinkedHashMap" %>
<%@ page import="org.maxkey.web.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="s" uri="http://www.connsec.com/tags" %>
<script type="text/javascript">
function onClick(event, treeId, treeNode) {
//alert(treeNode.name+"|"+treeNode.id);
$("#departmentId", window.parent.document).val(treeNode.id);
$("#department", window.parent.document).val(treeNode.name);
$.closeWindow();
}
</script>
<!-- content -->
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="th_atleft">
<tr>
<td valign="top" class="td_1" style="vertical-align: top;">
<s:Tree rootId="<%=WebContext.getSystemNavRootId()%>" url="/orgs/tree" id="tree" onClick="onClick"/>
</td>
</tr>
</table>

View File

@ -30,37 +30,37 @@
</td>
</tr>
<tr>
<th><s:Locale code="access.security.otp.sharedSecret" />(BASE32) :</th>
<th><s:Locale code="login.counter.sharedSecret" />(BASE32) :</th>
<td>
<input readonly type="text" class="required" title="" value="${sharedSecret}"/>
</td>
</tr>
<tr>
<th><s:Locale code="access.security.otp.sharedSecret" />(HEX) :</th>
<th><s:Locale code="login.counter.sharedSecret" />(HEX) :</th>
<td>
<input readonly type="text" class="required" title="" value="${hexSharedSecret}"/>
</td>
</tr>
<tr>
<th><s:Locale code="access.security.otp.period" />:</th>
<th><s:Locale code="login.counter.period" />:</th>
<td>
<input readonly type="text" class="required" title="" value="${format.period}"/>
</td>
</tr>
<tr>
<th><s:Locale code="access.security.otp.digits" />:</th>
<th><s:Locale code="login.counter.digits" />:</th>
<td>
<input readonly type="text" class="required" title="" value="${format.digits}"/>
</td>
</tr>
<tr>
<th><s:Locale code="access.security.otp.crypto" />:</th>
<th><s:Locale code="login.counter.crypto" />:</th>
<td>
<input readonly type="text" class="required" title="" value="${format.crypto}"/>
</td>
</tr>
<tr>
<th><s:Locale code="access.security.otp.counter" />:</th>
<th><s:Locale code="login.counter.counter" />:</th>
<td>
<input readonly type="text" class="required" title="" value="${format.counter}"/>
</td>

View File

@ -30,37 +30,37 @@
</td>
</tr>
<tr>
<th><s:Locale code="access.security.otp.sharedSecret" />(BASE32) :</th>
<th><s:Locale code="login.hotp.sharedSecret" />(BASE32) :</th>
<td>
<input readonly type="text" class="required" title="" value="${sharedSecret}"/>
</td>
</tr>
<tr>
<th><s:Locale code="access.security.otp.sharedSecret" />(HEX) :</th>
<th><s:Locale code="login.hotp.sharedSecret" />(HEX) :</th>
<td>
<input readonly type="text" class="required" title="" value="${hexSharedSecret}"/>
</td>
</tr>
<tr style="display:none">
<th><s:Locale code="access.security.otp.period" />:</th>
<th><s:Locale code="login.hotp.period" />:</th>
<td>
<input readonly type="text" class="required" title="" value="${format.period}"/>
</td>
</tr>
<tr>
<th><s:Locale code="access.security.otp.counter" />:</th>
<th><s:Locale code="login.hotp.counter" />:</th>
<td>
<input readonly type="text" class="required" title="" value="${format.counter}"/>
</td>
</tr>
<tr>
<th><s:Locale code="access.security.otp.digits" />:</th>
<th><s:Locale code="login.hotp.digits" />:</th>
<td>
<input readonly type="text" class="required" title="" value="${format.digits}"/>
</td>
</tr>
<tr>
<th><s:Locale code="access.security.otp.crypto" />:</th>
<th><s:Locale code="login.hotp.crypto" />:</th>
<td>
<input readonly type="text" class="required" title="" value="${format.crypto}"/>
</td>

View File

@ -3,6 +3,16 @@
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE HTML >
<html>
<head>
<jsp:include page="../layout/header.jsp"></jsp:include>
<jsp:include page="../layout/common.css.jsp"></jsp:include>
<jsp:include page="../layout/common.js.jsp"></jsp:include>
</head>
<body>
<jsp:include page="../layout/top.jsp"></jsp:include>
<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
<table width="100%">
<tr>
@ -10,7 +20,7 @@
<table class="datatable" >
<tbody>
<tr>
<td colspan="2">TimeBased One Time Password</td>
<td colspan="2"><s:Locale code="login.totp.title" /></td>
</tr>
<tr>
<td> <img id="captchaimg" src="<c:url value="/image/${id}"/>" /></td>
@ -30,31 +40,31 @@
</td>
</tr>
<tr>
<th><s:Locale code="access.security.otp.sharedSecret" />(BASE32) :</th>
<th><s:Locale code="login.totp.sharedSecret" />(BASE32) :</th>
<td>
<input readonly type="text" class="required" title="" value="${sharedSecret}"/>
</td>
</tr>
<tr>
<th><s:Locale code="access.security.otp.sharedSecret" />(HEX) :</th>
<th><s:Locale code="login.totp.sharedSecret" />(HEX) :</th>
<td>
<input readonly type="text" class="required" title="" value="${hexSharedSecret}"/>
</td>
</tr>
<tr>
<th><s:Locale code="access.security.otp.period" />:</th>
<th><s:Locale code="login.totp.period" />:</th>
<td>
<input readonly type="text" class="required" title="" value="${format.period}"/>
</td>
</tr>
<tr>
<th><s:Locale code="access.security.otp.digits" />:</th>
<th><s:Locale code="login.totp.digits" />:</th>
<td>
<input readonly type="text" class="required" title="" value="${format.digits}"/>
</td>
</tr>
<tr>
<th><s:Locale code="access.security.otp.crypto" />:</th>
<th><s:Locale code="login.totp.crypto" />:</th>
<td>
<input readonly type="text" class="required" title="" value="${format.crypto}"/>
</td>
@ -62,7 +72,7 @@
<tr>
<td colspan="2" class="center">
<input class="button forward" style="width:100px" wurl="<c:url value="/otp/gen/timebased"/>" type="button" id="forward" value="<s:Locale code="button.text.save" />"/>
<input class="button forward" style="width:100px" wurl="<c:url value="/safe/otp/gen/timebased"/>" type="button" id="forward" value="<s:Locale code="login.totp.generate" />"/>
</td>
</tr>
@ -73,4 +83,9 @@
</table>
</td>
</tr>
</table>
</table>
<div id="footer">
<jsp:include page="../layout/footer.jsp"></jsp:include>
</div>
<body>
</html>

View File

@ -1,7 +1,17 @@
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="s" uri="hhttp://sso.maxkey.org/tags" %>
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<!DOCTYPE HTML >
<html>
<head>
<jsp:include page="../layout/header.jsp"></jsp:include>
<jsp:include page="../layout/common.css.jsp"></jsp:include>
<jsp:include page="../layout/common.js.jsp"></jsp:include>
</head>
<body>
<jsp:include page="../layout/top.jsp"></jsp:include>
<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
<table width="100%">
<tr>
@ -12,7 +22,7 @@
<table class="datatable" >
<tbody>
<tr>
<th colspan="2"><s:Locale code="access.security.applogin.protectionSetting" /></th>
<th colspan="2"><s:Locale code="login.password.applogin.changepassword" /></th>
</tr>
<tr>
<th><s:Locale code="userinfo.displayName" /> :</th>
@ -29,7 +39,7 @@
</td>
</tr>
<tr>
<th><s:Locale code="access.security.oldPassword" /> :</th>
<th><s:Locale code="login.password.oldPassword" /> :</th>
<td>
<input type="password" id="oldPassword" name="oldPassword" class="required" title="" value=""/>
<b class="orange">*</b>
@ -37,7 +47,7 @@
</td>
</tr>
<tr>
<th><s:Locale code="access.security.newPassword" />:</th>
<th><s:Locale code="login.password.newPassword" />:</th>
<td>
<input type="password" id="newPassword" name="newPassword" class=" required" title="" value=""/>
<b class="orange">*</b>
@ -45,7 +55,7 @@
</td>
</tr>
<tr>
<th><s:Locale code="access.security.confirmPassword" />:</th>
<th><s:Locale code="login.password.confirmPassword" />:</th>
<td nowrap>
<input type="password" id="confirmPassword" name="confirmPassword" class="{ required: true, equalTo: '#newPassword' }" title="" value=""/>
<b class="orange">*</b>
@ -64,4 +74,9 @@
</form>
</td>
</tr>
</table>
</table>
<div id="footer">
<jsp:include page="../layout/footer.jsp"></jsp:include>
</div>
<body>
</html>

View File

@ -2,6 +2,16 @@
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<!DOCTYPE HTML >
<html>
<head>
<jsp:include page="../layout/header.jsp"></jsp:include>
<jsp:include page="../layout/common.css.jsp"></jsp:include>
<jsp:include page="../layout/common.js.jsp"></jsp:include>
</head>
<body>
<jsp:include page="../layout/top.jsp"></jsp:include>
<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
<table width="100%">
<tr>
@ -12,7 +22,7 @@
<table class="datatable" >
<tbody>
<tr>
<th colspan="2"><s:Locale code="access.security.loginpassword.setting" /></th>
<th colspan="2"><s:Locale code="login.password.changepassword" /></th>
</tr>
<tr>
<th><s:Locale code="userinfo.displayName" /> :</th>
@ -29,7 +39,7 @@
</td>
</tr>
<tr>
<th><s:Locale code="access.security.oldPassword" /> :</th>
<th><s:Locale code="login.password.oldPassword" /> :</th>
<td>
<input type="password" id="oldPassword" name="oldPassword" class="required" title="" value=""/>
<b class="orange">*</b>
@ -37,7 +47,7 @@
</td>
</tr>
<tr>
<th><s:Locale code="access.security.newPassword" />:</th>
<th><s:Locale code="login.password.newPassword" />:</th>
<td>
<input type="password" id="newPassword" name="newPassword" class=" required" title="" value=""/>
<b class="orange">*</b>
@ -45,7 +55,7 @@
</td>
</tr>
<tr>
<th><s:Locale code="access.security.confirmPassword" />:</th>
<th><s:Locale code="login.password.confirmPassword" />:</th>
<td nowrap>
<input type="password" id="confirmPassword" name="confirmPassword" class="{ required: true, equalTo: '#newPassword' }" title="" value=""/>
<b class="orange">*</b>
@ -64,4 +74,9 @@
</form>
</td>
</tr>
</table>
</table>
<div id="footer">
<jsp:include page="../layout/footer.jsp"></jsp:include>
</div>
<body>
</html>

View File

@ -1,57 +0,0 @@
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<table width="100%">
<tr>
<td>
<form id="actionForm" method="post" type="label" autoclose="true" action="<s:Base/>/safe/email">
<table class="datatable">
<tbody>
<tr>
<th colspan="2"><s:Locale code="access.security.email.setting" /></th>
</tr>
<tr>
<th><s:Locale code="userinfo.displayName" /> :</th>
<td>
<input readonly type="text" id="displayName" name="displayName" class="required" title="" value="${model.displayName}"/>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.username" /> :</th>
<td>
<input readonly type="text" id="username" name="username" class="required" title="" value="${model.username}"/>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.email" /> :</th>
<td>
<input type="text" id="email" name="email" class="required" title="" value="${model.email}"/>
<label for="eamil"></label>
</td>
</tr>
<tr style="display:none;">
<th>Verify Code :</th>
<td>
<input type="text" id="verify" name="verify" class="required" title="" value="Verify" style="width:200px" /><input class="button" style="width:100px" type="button" id="getVerifyBtn" value="get Verify"/>
<label for="verify"></label>
</td>
</tr>
<tr>
<td colspan="2" class="center">
<input id="_method" type="hidden" name="_method" value="post"/>
<input class="button" style="width:100px" type="button" id="submitBtn" value="<s:Locale code="button.text.save" />"/>
</td>
</tr>
</tbody>
</table>
</form>
</td>
</tr>
</table>

View File

@ -1,58 +0,0 @@
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<table width="100%">
<tr>
<td>
<form id="actionForm" method="post" type="label" autoclose="true" action="<s:Base/>/safe/mobile">
<table class="datatable" >
<tbody>
<tr>
<th colspan="2"><s:Locale code="access.security.mobile.setting" /></th>
</tr>
<tr>
<th><s:Locale code="userinfo.displayName" /> :</th>
<td>
<input readonly type="text" id="displayName" name="displayName" class="required" title="" value="${model.displayName}"/>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.username" /> :</th>
<td>
<input readonly type="text" id="username" name="username" class="required" title="" value="${model.username}"/>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.mobile" /> :</th>
<td>
<input type="text" id="mobile" name="mobile" class=" required" title="" value="${model.mobile}"/>
<label for="mobile"></label>
</td>
</tr>
<tr style="display:none;">
<th>Verify Code :</th>
<td>
<input type="text" id="verify" name="verify" class="required" title="" value="1" style="width:200px" /><input class="button" style="width:100px" type="button" id="getVerifyBtn" value="get Verify"/>
<label for="verify"></label>
</td>
</tr>
<tr>
<td colspan="2" class="center">
<input id="_method" type="hidden" name="_method" value="post"/>
<input class="button" style="width:100px" type="button" id="submitBtn" value="<s:Locale code="button.text.save" />"/>
</td>
</tr>
</tbody>
</table>
</form>
</td>
</tr>
</table>

View File

@ -1,79 +0,0 @@
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<table width="100%">
<tr>
<td>
<form id="actionForm" method="post" type="label" autoclose="true" action="<s:Base/>/safe/question">
<input type="hidden" id="id" name="id" title="" value="${model.id}"/>
<table class="datatable">
<tbody>
<tr>
<th colspan="2"><s:Locale code="access.security.question.setting" /></th>
</tr>
<tr>
<th><s:Locale code="userinfo.displayName" /> :</th>
<td>
<input readonly type="text" id="displayName" name="displayName" class="required" title="" value="${model.displayName}"/>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.username" /> :</th>
<td>
<input readonly type="text" id="username" name="username" class="required" title="" value="${model.username}"/>
</td>
</tr>
<tr>
<th><s:Locale code="access.security.question.passwordQuestion" /> :</th>
<td>
<select name="passwordQuestion" id="passwordQuestion">
<option value="0" <c:if test="${0==model.passwordQuestion}">selected</c:if> >请选择密保问题</option>
<option value="1" <c:if test="${1==model.passwordQuestion}">selected</c:if> >我第一份工作做什么?</option>
<option value="2" <c:if test="${2==model.passwordQuestion}">selected</c:if> >我妈妈的姓名是?</option>
<option value="3" <c:if test="${3==model.passwordQuestion}">selected</c:if> >我妈妈的生日?</option>
<option value="4" <c:if test="${4==model.passwordQuestion}">selected</c:if> >我父亲的姓名是?</option>
<option value="5" <c:if test="${5==model.passwordQuestion}">selected</c:if> >我父亲的生日?</option>
<option value="6" <c:if test="${6==model.passwordQuestion}">selected</c:if> >我最爱的人的名字?</option>
<option value="7" <c:if test="${7==model.passwordQuestion}">selected</c:if> >我最爱的人的生日是?</option>
<option value="8" <c:if test="${8==model.passwordQuestion}">selected</c:if> >我最爱的电影?</option>
<option value="9" <c:if test="${9==model.passwordQuestion}">selected</c:if> >我最喜欢的歌曲?</option>
<option value="10" <c:if test="${10==model.passwordQuestion}">selected</c:if> >我最喜欢的食物?</option>
<option value="11" <c:if test="${11==model.passwordQuestion}">selected</c:if> >我最喜欢的休闲运动是什么?</option>
<option value="12" <c:if test="${12==model.passwordQuestion}">selected</c:if> >我最喜欢的运动员是谁?</option>
<option value="13" <c:if test="${13==model.passwordQuestion}">selected</c:if> >我第一所学校是?</option>
<option value="14" <c:if test="${14==model.passwordQuestion}">selected</c:if> >我的学号(或工号)是?</option>
<option value="15" <c:if test="${15==model.passwordQuestion}">selected</c:if> >我小学班主任的名字是?</option>
<option value="16" <c:if test="${16==model.passwordQuestion}">selected</c:if> >我初中班主任的名字是?</option>
<option value="17" <c:if test="${17==model.passwordQuestion}">selected</c:if> >我高中班主任的名字是?</option>
<option value="18" <c:if test="${18==model.passwordQuestion}">selected</c:if> >我最熟悉的童年好友名字是?</option>
<option value="19" <c:if test="${19==model.passwordQuestion}">selected</c:if> >我最熟悉的学校宿舍室友名字是?</option>
<option value="20" <c:if test="${20==model.passwordQuestion}">selected</c:if> >对我影响最大的人名字是?</option>
</select>
</td>
</tr>
<tr>
<th><s:Locale code="access.security.question.passwordAnswer" />:</th>
<td>
<input type="text" id="passwordAnswer" name="passwordAnswer" class=" required" title="" value="${model.passwordAnswer}"/>
<b class="orange">*</b>
<label for="newPassword"></label>
</td>
</tr>
<tr>
<td colspan="2" class="center">
<input id="_method" type="hidden" name="_method" value="post"/>
<input class="button" style="width:100px" type="button" id="submitBtn" value="<s:Locale code="button.text.save" />"/>
</td>
</tr>
</tbody>
</table>
</form>
</td>
</tr>
</table>

View File

@ -3,6 +3,16 @@
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE HTML >
<html>
<head>
<jsp:include page="../layout/header.jsp"></jsp:include>
<jsp:include page="../layout/common.css.jsp"></jsp:include>
<jsp:include page="../layout/common.js.jsp"></jsp:include>
</head>
<body>
<jsp:include page="../layout/top.jsp"></jsp:include>
<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
<table width="100%">
<tr>
@ -13,7 +23,7 @@
<table class="datatable" >
<tbody>
<tr>
<th colspan="2"><s:Locale code="access.security.authnSetting" /></th>
<th colspan="2">authnSetting</th>
</tr>
<tr>
<th><s:Locale code="userinfo.displayName" /> :</th>
@ -30,23 +40,56 @@
</td>
</tr>
<tr>
<th><s:Locale code="access.security.authnType" />:</th>
<th><s:Locale code="userinfo.authnType" />:</th>
<td nowrap>
<select name="authnType" id="authnType">
<option value="1" <c:if test="${0==model.authnType}">selected</c:if> ><s:Locale code="button.text.select" /></option>
<option value="1" <c:if test="${1==model.authnType}">selected</c:if> ><s:Locale code="access.security.authnType.1" /></option>
<option value="2" <c:if test="${2==model.authnType}">selected</c:if> ><s:Locale code="access.security.authnType.2" /></option>
<option value="3" <c:if test="${3==model.authnType}">selected</c:if> ><s:Locale code="access.security.authnType.3" /></option>
<option value="4" <c:if test="${4==model.authnType}">selected</c:if> ><s:Locale code="access.security.authnType.4" /></option>
<option value="5" <c:if test="${5==model.authnType}">selected</c:if> ><s:Locale code="access.security.authnType.5" /></option>
<option value="6" <c:if test="${6==model.authnType}">selected</c:if> ><s:Locale code="access.security.authnType.6" /></option>
<option value="7" <c:if test="${7==model.authnType}">selected</c:if> ><s:Locale code="access.security.authnType.7" /></option>
<option value="8" <c:if test="${8==model.authnType}">selected</c:if> ><s:Locale code="access.security.authnType.8" /></option>
<option value="9" <c:if test="${9==model.authnType}">selected</c:if> ><s:Locale code="access.security.authnType.9" /></option>
<option value="10" <c:if test="${10==model.authnType}">selected</c:if> ><s:Locale code="access.security.authnType.10" /></option>
<option value="1" <c:if test="${1==model.authnType}">selected</c:if> ><s:Locale code="userinfo.authnType.authnType.1" /></option>
<!--
<option value="2" <c:if test="${2==model.authnType}">selected</c:if> ><s:Locale code="userinfo.authnType.authnType.2" /></option>
-->
<option value="3" <c:if test="${3==model.authnType}">selected</c:if> ><s:Locale code="userinfo.authnType.authnType.3" /></option>
<option value="4" <c:if test="${4==model.authnType}">selected</c:if> ><s:Locale code="userinfo.authnType.authnType.4" /></option>
<option value="5" <c:if test="${5==model.authnType}">selected</c:if> ><s:Locale code="userinfo.authnType.authnType.5" /></option>
<!--
<option value="6" <c:if test="${6==model.authnType}">selected</c:if> ><s:Locale code="userinfo.authnType.authnType.6" /></option>
<option value="7" <c:if test="${7==model.authnType}">selected</c:if> ><s:Locale code="userinfo.authnType.authnType.7" /></option>
<option value="8" <c:if test="${8==model.authnType}">selected</c:if> ><s:Locale code="userinfo.authnType.authnType.8" /></option>
<option value="9" <c:if test="${9==model.authnType}">selected</c:if> ><s:Locale code="userinfo.authnType.authnType.9" /></option>
<option value="10" <c:if test="${10==model.authnType}">selected</c:if> ><s:Locale code="userinfo.authnType.authnType.10" /></option>
-->
</select>
</td>
</tr>
</tr>
<tr>
<th><s:Locale code="userinfo.mobile" /> :</th>
<td>
<input type="text" id="mobile" name="mobile" class=" required" title="" value="${model.mobile}"/>
<label for="mobile"></label>
</td>
</tr>
<tr style="display:none;">
<th>Verify Code :</th>
<td>
<input type="text" id="mobileVerify" name="mobileVerify" class="required" title="" value="1" style="width:200px" /><input class="button" style="width:100px" type="button" id="getMobileVerifyBtn" value="get Verify"/>
<label for="verify"></label>
</td>
</tr>
<tr>
<th><s:Locale code="userinfo.email" /> :</th>
<td>
<input type="text" id="email" name="email" class="required" title="" value="${model.email}"/>
<label for="eamil"></label>
</td>
</tr>
<tr style="display:none;">
<th>Verify Code :</th>
<td>
<input type="text" id="emailVerify" name="emailVerify" class="required" title="" value="Verify" style="width:200px" /><input class="button" style="width:100px" type="button" id="getEmailVerifyBtn" value="get Verify"/>
<label for="verify"></label>
</td>
</tr>
<tr>
<td colspan="2" class="center">
<input id="_method" type="hidden" name="_method" value="post"/>
@ -59,4 +102,9 @@
</form>
</td>
</tr>
</table>
</table>
<div id="footer">
<jsp:include page="../layout/footer.jsp"></jsp:include>
</div>
<body>
</html>

View File

@ -6,6 +6,17 @@
<%@ taglib prefix="s" uri="http://sso.maxkey.org/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE HTML >
<html>
<head>
<jsp:include page="../layout/header.jsp"></jsp:include>
<jsp:include page="../layout/common.css.jsp"></jsp:include>
<jsp:include page="../layout/common.js.jsp"></jsp:include>
</head>
<body>
<jsp:include page="../layout/top.jsp"></jsp:include>
<jsp:include page="../layout/nav_primary.jsp"></jsp:include>
<%if(WebContext.getUserInfo().getGridList()==0) {%>
<table class="datatable">
<c:forEach begin="1" end="${(fn:length(listSocialSignOnProvider)+3)/4}" var="num">
@ -19,10 +30,10 @@
</td></tr>
<tr><td style="text-align: center;border-spacing: 0;border-collapse: collapse;border: 0px;">${socialSignOnProvider.providerName}<div>
<c:if test="${false==socialSignOnProvider.userBind}">
<a href="<s:Base/>/logon/oauth20/bind/${socialSignOnProvider.provider}"><s:Locale code="access.security.social.authnLink.link" /></a>
<a href="<s:Base/>/logon/oauth20/bind/${socialSignOnProvider.provider}"><s:Locale code="login.social.link" /></a>
</c:if>
<c:if test="${true==socialSignOnProvider.userBind}">
<a href="<s:Base/>/logon/oauth20//unbind/${socialSignOnProvider.provider}"><s:Locale code="access.security.social.authnLink.unlink" /></a>
<a href="<s:Base/>/logon/oauth20//unbind/${socialSignOnProvider.provider}"><s:Locale code="login.social.unlink" /></a>
</c:if>
</div></td></tr>
</table>
@ -37,9 +48,9 @@
<table class="datatable">
<tr>
<td>
<s:Locale code="access.security.social.icon"/>
<s:Locale code="login.social.icon"/>
</td>
<td><s:Locale code="access.security.social.providerName"/></td>
<td><s:Locale code="login.social.provider"/></td>
<td><s:Locale code="button.text.action"/></td>
</tr>
<c:forEach items="${listSocialSignOnProvider}" var="socialSignOnProvider">
@ -51,14 +62,19 @@
<td style="text-align: center;">${socialSignOnProvider.providerName}</td>
<td style="text-align: center;">
<c:if test="${false==socialSignOnProvider.userBind}">
<a href="<s:Base/>/logon/oauth20/bind/${socialSignOnProvider.provider}"><s:Locale code="access.security.social.authnLink.link" /></a>
<a href="<s:Base/>/logon/oauth20/bind/${socialSignOnProvider.provider}"><s:Locale code="login.social.link" /></a>
</c:if>
<c:if test="${true==socialSignOnProvider.userBind}">
<a href="<s:Base/>/logon/oauth20//unbind/${socialSignOnProvider.provider}"><s:Locale code="access.security.social.authnLink.unlink" /></a>
<a href="<s:Base/>/logon/oauth20//unbind/${socialSignOnProvider.provider}"><s:Locale code="login.social.unlink" /></a>
</c:if>
</td>
</tr>
</c:if>
</c:forEach>
</table>
<%} %>
<%} %>
<div id="footer">
<jsp:include page="../layout/footer.jsp"></jsp:include>
</div>
<body>
</html>

View File

@ -189,7 +189,13 @@ button,input{
font-weight: bold;
}
#manage a,#logout a{
#changepassword{
width: 65px;
background-color: #f28018;
font-weight: bold;
}
#manage a,#logout a,#changepassword a{
color: #fff;
}

View File

@ -1,6 +1,5 @@
.menuprimary {
font: bold 12px Verdana;
/*background: #414141; background of menu bar (default state)*/
width: 990px;
margin: auto;
height: 41px;