| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 | <% include ./sub_menu.ejs %><div class="panel-content" id="app">    <div class="panel-title">        <div class="title-main">            <h2>账号安全</h2>        </div>    </div>    <div class="content-wrap">        <div class="c-body">            <div class="sjs-height-0">                <div class="row m-0">                    <div class="col-6 my-3">                        <!--账号安全-->                        <form action="/profile/password" method="post" id="password-form">                            <% if(accountData.password !== 'SSO password') { %>                                <input-text label="旧密码" password="true" name="password"></input-text>                                <input-text label="新密码" password="true" name="new_password" id="new_password"></input-text>                                <input-text label="确认新密码" password="true" name="confirm_password"></input-text>                                <input type="hidden" name="_csrf_j" value="<%= ctx.csrf %>">                                <button type="submit" class="btn btn-primary btn-sm" id="modify-password">修改密码</button>                            <% } else { %>                                <p>SSO用户请到<a href="#">此处</a>修改密码</p>                            <% } %>                        </form>                        <!-- 访问日志 -->                        <div class="col-12 mt-5">                            <h4>访问日志</h4>                            <table class="table table-hover">                                <thead>                                    <tr>                                        <th></th>                                        <th>系统</th>                                        <th>浏览器</th>                                        <th>登录时间</th>                                        <th>登录地址</th>                                    </tr>                                </thead>                                <tbody>                                    <% loginLogging.forEach((item, idx) => { %>                                        <tr>                                            <td><%- idx + 1 %></td>                                            <td><%- item.os %></td>                                            <td><%- item.browser %></td>                                            <td><%- ctx.helper.formatFullDate(item.create_time) %></td>                                            <td><%- item.address %></td>                                        </tr>                                    <% }) %>                                </tbody>                            </table>                        </div>                    </div>                </div>            </div>        </div>    </div></div><script>    $(document).ready(function() {        $.validator.addMethod("isSafe", function(value, element) {            const safe = /^(?![0-9]+$)(?![a-zA-Z]+$).{6,16}$/;            // var safe = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>,.\/]).{6,16}$/;            // var safe = /^(?=.*[a-zA-Z])(?=.*\d).{6,16}$/;            return this.optional(element) || safe.test(value);        }, "请设置至少包含数字和字母的密码");        const options = {            rules: '',            messages: {},            errorPlacement: function(error, element) {                $(element).addClass('is-invalid');                $(element).after(error);            },            errorClass: "invalid-feedback",            errorElement: "div",            highlight: false,            success: function(element) {                $(element).siblings('input').removeClass('is-invalid');                $(element).remove();            },        };        options.rules = {            password: {                required: true,                minlength: 6,            },            new_password: {                required: true,                minlength: 6,                maxlength: 16,                isSafe: true,            },            confirm_password : {                required: true,                minlength: 6,                maxlength: 16,                equalTo: '#new_password',            },        };        $("#password-form").validate(options);    });</script><script src="/public/js/validate.extend.js"></script><script type="text/javascript">    new Vue({        el: '#app',    });    const csrf = '<%= ctx.csrf %>';</script><script type="text/javascript" src="/public/js/profile.js"></script>
 |