• BaiJiangJie's avatar
    [Feature] 添加功能,密码过期间隔时间配置,检测用户密码过期 (#2043) · 363985ee
    BaiJiangJie authored
    * [Update] user model 添加date_password_last_updated字段, 并在用户详情/个人信息页进行展示、重置密码/修改密码时进行更新;安全设置添加密码过期时间配置项;
    
    * [Update] 修改依赖,deb_requirements 删除 gcc automake
    
    * [Update] 添加定时任务: 检测用户密码是否过期
    
    * [Update] 登录页面添加检测用户密码是否过期,并给出过期提示,拒绝登录
    
    * [update] 用户密码过期时间5天以内,每天发送重置密码邮件
    
    * [Update] api 登录认证,添加密码过期检测
    
    * [Update] 添加提示用户密码即将过期信息
    
    * [Update] 修改小细节
    
    * [Update] User model 添加密码即将过期/已过期 property属性
    
    * [Update] 修改用户api auth检测用户密码过期逻辑
    
    * [Update] 添加翻译,用户密码过期
    
    * [Update] 用户密码即将过期,发送密码过期提醒邮件
    
    * [Update] 修改检测用户密码过期任务,修改interval为crontab
    
    * [Update] 修改翻译小细节
    
    * [Update] 修改翻译小细节
    
    * [Bugfix] 修复在用户更新页面修改密码时, 不更新最后密码修改时间的bug
    
    * [Update] 修复小细节
    
    * [Update] 修改系统设置成功提示翻译信息
    363985ee
_message.html 2.74 KB
{% load i18n %}

{% block password_expired_message %}
    {% url 'users:user-password-update' as user_password_update_url %}
    {% if request.user.password_has_expired  %}
        <div class="alert alert-danger help-message alert-dismissable">
            {% blocktrans %}
                Your password has expired, please click <a href="{{ user_password_update_url }}"> this link </a> update password.
            {% endblocktrans %}
            <button aria-hidden="true" data-dismiss="alert" class="close" type="button" style="outline: none;">×</button>
        </div>
    {% elif request.user.password_will_expired %}
        <div class="alert alert-danger help-message alert-dismissable">
            {% trans 'Your password will at' %} {{ request.user.date_password_expired }} {% trans 'expired. ' %}
            {% blocktrans %}
                please click <a href="{{ user_password_update_url }}"> this link </a> to update your password.
            {% endblocktrans %}
            <button aria-hidden="true" data-dismiss="alert" class="close" type="button" style="outline: none;">×</button>
        </div>
    {% endif %}
{% endblock %}

{% block first_login_message %}
    {% if request.user.is_authenticated and request.user.is_first_login %}
    <div class="alert alert-danger help-message alert-dismissable">
        {% url 'users:user-first-login' as first_login_url %}
        {% blocktrans %}
        Your information was incomplete. Please click <a href="{{ first_login_url }}"> this link </a>to complete your information.
        {% endblocktrans %}
        <button aria-hidden="true" data-dismiss="alert" class="close" type="button" style="outline: none;">×</button>
    </div>
    {% endif %}
{% endblock %}

{% block update_public_key_message %}
    {% if request.user.is_authenticated and not request.user.is_public_key_valid and not request.COOKIE.close_public_key_msg != '1' %}
    <div class="alert alert-danger help-message alert-dismissable">
        <button aria-hidden="true" data-dismiss="alert" class="close" type="button" onclick="closePublicKeyMsg()">×</button>
        {% url 'users:user-pubkey-update' as user_pubkey_update %}
        {% blocktrans %}
        Your ssh public key not set or expired. Please click <a href="{{ user_pubkey_update }}"> this link </a>to update
        {% endblocktrans %}
    </div>
    {% endif %}
{% endblock %}

{% if messages %}
    {% for message in messages %}
        <div class="alert alert-{{ message.tags }} help-message" >
            {{ message|safe }}
            <button aria-hidden="true" data-dismiss="alert" class="close" type="button" style="outline: none;">×</button>
        </div>

    {% endfor %}
{% endif %}

<script>
    function closePublicKeyMsg() {
        setCookie('close_public_key_msg', 1)
    }
</script>