PasswordPolicy

This commit is contained in:
Crystal.Sea
2020-08-26 19:56:31 +08:00
parent 05a517a7a0
commit 6058096896
15 changed files with 286 additions and 69 deletions

View File

@@ -99,7 +99,12 @@ login.passwordpolicy.attempts=\u767B\u5F55\u5C1D\u8BD5\u6B21\u6570
login.passwordpolicy.duration=\u81EA\u52A8\u89E3\u9664
login.passwordpolicy.expiration=\u8FC7\u671F\u65F6\u95F4
login.passwordpolicy.username=\u5305\u542B\u7528\u6237\u540D
login.passwordpolicy.simplepasswords=\u7B80\u5355\u5BC6\u7801
login.passwordpolicy.dictionary=\u7B80\u5355\u5BC6\u7801\u5B57\u5178
login.passwordpolicy.history=\u5386\u53F2\u5BC6\u7801\u6B21\u6570
login.passwordpolicy.alphabetical=\u5B57\u6BCD\u5E8F\u5217\u7B56\u7565
login.passwordpolicy.numerical=\u6570\u5B57\u5E8F\u5217\u7B56\u7565
login.passwordpolicy.qwerty=\u952E\u76D8\u7B56\u7565
login.passwordpolicy.occurances=\u5B57\u7B26\u91CD\u590D\u6B21\u6570
login.social.link=\u7ED1\u5B9A
@@ -429,6 +434,8 @@ button.text.cancel=\u53D6\u6D88
button.text.add.member=\u65B0\u589E\u6210\u5458
button.text.delete.member=\u5220\u9664\u6210\u5458
button.text.generate=\u751F\u6210
button.text.view=\u67E5\u770B
button.text.hidden=\u9690\u85CF
log.loginhistory.id=\u7F16\u53F7
log.loginhistory.sessionId=\u4F1A\u8BDD

View File

@@ -101,7 +101,12 @@ login.passwordpolicy.attempts=attempts
login.passwordpolicy.duration=duration
login.passwordpolicy.expiration=expiration
login.passwordpolicy.username=username
login.passwordpolicy.simplepasswords=simplepasswords
login.passwordpolicy.dictionary=Dictionary
login.passwordpolicy.history=History
login.passwordpolicy.alphabetical=ALPHABETICAL sequences
login.passwordpolicy.numerical=NUMERICAL sequences
login.passwordpolicy.qwerty=QWERTY sequences
login.passwordpolicy.occurances=Occurances
login.social.link=Link
@@ -428,6 +433,8 @@ button.text.cancel=Cancel
button.text.add.member=Ddd member
button.text.delete.member=Delete member
button.text.generate=Generate
button.text.view=View
button.text.hidden=Hidden
log.loginhistory.id=id

View File

@@ -99,7 +99,12 @@ login.passwordpolicy.attempts=\u767B\u5F55\u5C1D\u8BD5\u6B21\u6570
login.passwordpolicy.duration=\u81EA\u52A8\u89E3\u9664
login.passwordpolicy.expiration=\u8FC7\u671F\u65F6\u95F4
login.passwordpolicy.username=\u5305\u542B\u7528\u6237\u540D
login.passwordpolicy.simplepasswords=\u7B80\u5355\u5BC6\u7801
login.passwordpolicy.dictionary=\u7B80\u5355\u5BC6\u7801\u5B57\u5178
login.passwordpolicy.history=\u5386\u53F2\u5BC6\u7801\u6B21\u6570
login.passwordpolicy.alphabetical=\u5B57\u6BCD\u5E8F\u5217\u7B56\u7565
login.passwordpolicy.numerical=\u6570\u5B57\u5E8F\u5217\u7B56\u7565
login.passwordpolicy.qwerty=\u952E\u76D8\u7B56\u7565
login.passwordpolicy.occurances=\u5B57\u7B26\u91CD\u590D\u6B21\u6570
login.social.link=\u7ED1\u5B9A
@@ -429,6 +434,8 @@ button.text.cancel=\u53D6\u6D88
button.text.add.member=\u65B0\u589E\u6210\u5458
button.text.delete.member=\u5220\u9664\u6210\u5458
button.text.generate=\u751F\u6210
button.text.view=\u67E5\u770B
button.text.hidden=\u9690\u85CF
log.loginhistory.id=\u7F16\u53F7
log.loginhistory.sessionId=\u4F1A\u8BDD

View File

@@ -119,6 +119,79 @@
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label class="col-sm-3 col-form-label"><@locale code="login.passwordpolicy.occurances" /></label>
<div class="col-sm-9">
<input required="" class="form-control" type="text" id="occurances" name="occurances" value="${model.occurances}" />
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group row">
<label class="col-sm-3 col-form-label"><@locale code="login.passwordpolicy.username" /></label>
<div class="col-sm-9">
<select class="form-control" id="username" name="username" >
<option <#if 1==model.username>selected</#if> value="1"><@locale code="common.text.status.enabled"/></option>
<option <#if 0==model.username>selected</#if> value="0"><@locale code="common.text.status.disabled"/></option>
</select>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label class="col-sm-3 col-form-label"><@locale code="login.passwordpolicy.alphabetical" /></label>
<div class="col-sm-9">
<select class="form-control" id="alphabetical" name="alphabetical" >
<option <#if 1==model.alphabetical>selected</#if> value="1"><@locale code="common.text.status.enabled"/></option>
<option <#if 0==model.alphabetical>selected</#if> value="0"><@locale code="common.text.status.disabled"/></option>
</select>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group row">
<label class="col-sm-3 col-form-label"><@locale code="login.passwordpolicy.numerical" /></label>
<div class="col-sm-9">
<select class="form-control" id="numerical" name="numerical" >
<option <#if 1==model.numerical>selected</#if> value="1"><@locale code="common.text.status.enabled"/></option>
<option <#if 0==model.numerical>selected</#if> value="0"><@locale code="common.text.status.disabled"/></option>
</select>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group row">
<label class="col-sm-3 col-form-label"><@locale code="login.passwordpolicy.qwerty" /></label>
<div class="col-sm-9">
<select class="form-control" id="qwerty" name="qwerty" >
<option <#if 1==model.qwerty>selected</#if> value="1"><@locale code="common.text.status.enabled"/></option>
<option <#if 0==model.qwerty>selected</#if> value="0"><@locale code="common.text.status.disabled"/></option>
</select>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group row">
<label class="col-sm-3 col-form-label"><@locale code="login.passwordpolicy.dictionary" /></label>
<div class="col-sm-9">
<select class="form-control" id="dictionary" name="dictionary" >
<option <#if 1==model.dictionary>selected</#if> value="1"><@locale code="common.text.status.enabled"/></option>
<option <#if 0==model.dictionary>selected</#if> value="0"><@locale code="common.text.status.disabled"/></option>
</select>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group row">
@@ -148,29 +221,20 @@
</div>
<div class="col-md-6">
<div class="form-group row">
<label class="col-sm-3 col-form-label"><@locale code="login.passwordpolicy.username" /></label>
<label class="col-sm-3 col-form-label"><@locale code="login.passwordpolicy.history" /></label>
<div class="col-sm-9">
<select class="form-control" id="username" name="username" >
<option <#if 1==model.username>selected</#if> value="1"><@locale code="common.text.status.enabled"/></option>
<option <#if 0==model.username>selected</#if> value="0"><@locale code="common.text.status.disabled"/></option>
</select>
<input required="" class="form-control" type="text" id="history" name="history" value="${model.history!}" />
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group m-b-20">
<label style="float: left;" for="simplePasswords"><@locale code="login.passwordpolicy.simplepasswords" /></label>
<textarea required="" id="simplePasswords" name="simplePasswords" class="form-control" >${model.simplePasswords!}</textarea>
</div>
</div>
</div>
<div class="row">
<div class="col-md-3">
<div class="col-md-4"></div>
<div class="col-md-4">
<button type="submit" class="button btn-primary btn btn-common btn-block mr-3" id="submitBtn" ><@locale code="button.text.save" /></button>
</div>
<div class="col-md-4"></div>
</div>
</form>

View File

@@ -0,0 +1,13 @@
<!DOCTYPE HTML >
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<title>MaxKey</title>
<base href="<@base />"/>
<link rel="shortcut icon" type="image/x-icon" href="<@base />/static/images/favicon.ico"/>
<link type="text/css" rel="stylesheet" href="<@base url="/style.css"/>" />
</head>
<body>
<script type="text/javascript">window.top.location.href="<@basePath />/main";</script>
</body>
</html>

View File

@@ -3,12 +3,33 @@
<head>
<#include "../layout/header.ftl"/>
<#include "../layout/common.cssjs.ftl"/>
<style type="text/css">
.table th, .table td {
padding: .2rem;
vertical-align: middle;
}
</style>
<style type="text/css">
.table th, .table td {
padding: .2rem;
vertical-align: middle;
}
</style>
<script type="text/javascript">
<!--
$(function(){
$("#generateSecret").on("click",function(){
$.post("<@base/>/userinfo/randomPassword/", {_method:"post",currTime:(new Date()).getTime()}, function(data) {
$("#password").val(data+"");
$("#confirmPassword").val(data+"");
});
});
$("#view").on("click",function(){
if($("#password").attr("type")=="text"){
$("#password").attr("type","password");
}else{
$("#password").attr("type","text");
}
});
});
//-->
</script>
</head>
<body>
@@ -34,7 +55,8 @@
<tr>
<th><@locale code="login.password.newPassword" />:</th>
<td>
<input type="password" id="password" name="password" required="" class="form-control" title="" value=""/>
<input type="password" id="password" name="password" required="" class="form-control" title="" value="" width="80%"/>
</td>
</tr>
<tr>
@@ -46,8 +68,10 @@
<tr>
<td colspan="2" class="center">
<input id="_method" type="hidden" name="_method" value="post"/>
<input id="generateSecret" type="button" class="button btn btn-warning mr-3" style="width:100px" value="<@locale code="button.text.generate"/>"/>
<input id="view" type="button" class="button btn btn-info mr-3" style="width:100px" value="<@locale code="button.text.view"/>"/>
<input class="button btn btn-primary mr-3" style="width:100px" type="submit" id="submitBtn" value="<@locale code="button.text.save" />"/>
</td>
</tr>
</tbody>