mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-11-04 07:05:41 +00:00 
			
		
		
		
	Remove "forgot password" link if the email backend is not configured
This commit is contained in:
		@@ -32,6 +32,7 @@ def health_status(request):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    status = {
 | 
					    status = {
 | 
				
			||||||
        'django_q_running': InvenTree.status.is_worker_running(),
 | 
					        'django_q_running': InvenTree.status.is_worker_running(),
 | 
				
			||||||
 | 
					        'email_configured': InvenTree.status.is_email_configured(),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    all_healthy = True
 | 
					    all_healthy = True
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -498,7 +498,10 @@ EXCHANGE_BACKEND = 'InvenTree.exchange.InvenTreeManualExchangeBackend'
 | 
				
			|||||||
# Extract email settings from the config file
 | 
					# Extract email settings from the config file
 | 
				
			||||||
email_config = CONFIG.get('email', {})
 | 
					email_config = CONFIG.get('email', {})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
 | 
					EMAIL_BACKEND = get_setting(
 | 
				
			||||||
 | 
					    'django.core.mail.backends.smtp.EmailBackend',
 | 
				
			||||||
 | 
					    email_config.get('backend', '')
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Email backend settings
 | 
					# Email backend settings
 | 
				
			||||||
EMAIL_HOST = get_setting(
 | 
					EMAIL_HOST = get_setting(
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,6 +11,9 @@ from datetime import datetime, timedelta
 | 
				
			|||||||
from django_q.models import Success
 | 
					from django_q.models import Success
 | 
				
			||||||
from django_q.monitor import Stat
 | 
					from django_q.monitor import Stat
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from django.conf import settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
logger = logging.getLogger("inventree")
 | 
					logger = logging.getLogger("inventree")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -43,6 +46,30 @@ def is_worker_running(**kwargs):
 | 
				
			|||||||
    return results.exists()
 | 
					    return results.exists()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def is_email_configured():
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    Check if email backend is configured.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    NOTE: This does not check if the configuration is valid!
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    configured = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if not settings.EMAIL_HOST:
 | 
				
			||||||
 | 
					        logger.warning("EMAIL_HOST is not configured")
 | 
				
			||||||
 | 
					        configured = False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if not settings.EMAIL_HOST_USER:
 | 
				
			||||||
 | 
					        logger.warning("EMAIL_HOST_USER is not configured")
 | 
				
			||||||
 | 
					        configured = False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if not settings.EMAIL_HOST_PASSWORD:
 | 
				
			||||||
 | 
					        logger.warning("EMAIL_HOST_PASSWORD is not configured")
 | 
				
			||||||
 | 
					        configured = False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return configured
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def check_system_health(**kwargs):
 | 
					def check_system_health(**kwargs):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    Check that the InvenTree system is running OK.
 | 
					    Check that the InvenTree system is running OK.
 | 
				
			||||||
@@ -56,6 +83,10 @@ def check_system_health(**kwargs):
 | 
				
			|||||||
        result = False
 | 
					        result = False
 | 
				
			||||||
        logger.warning(_("Background worker check failed"))
 | 
					        logger.warning(_("Background worker check failed"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if not is_email_configured():
 | 
				
			||||||
 | 
					        result = False
 | 
				
			||||||
 | 
					        logger.warning(_("Email backend not configured"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if not result:
 | 
					    if not result:
 | 
				
			||||||
        logger.warning(_("InvenTree system health checks failed"))
 | 
					        logger.warning(_("InvenTree system health checks failed"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -74,7 +74,9 @@ currencies:
 | 
				
			|||||||
# tls: Enable TLS support
 | 
					# tls: Enable TLS support
 | 
				
			||||||
# ssl: Enable SSL support
 | 
					# ssl: Enable SSL support
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Alternatively, these options can all be set using environment variables
 | 
					# Alternatively, these options can all be set using environment variables,
 | 
				
			||||||
 | 
					# with the INVENTREE_EMAIL_ prefix:
 | 
				
			||||||
 | 
					# e.g. INVENTREE_EMAIL_HOST / INVENTREE_EMAIL_PORT / INVENTREE_EMAIL_USERNAME
 | 
				
			||||||
# Refer to the InvenTree documentation for more information
 | 
					# Refer to the InvenTree documentation for more information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
email:
 | 
					email:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -89,9 +89,12 @@
 | 
				
			|||||||
                        <button class='pull-right btn btn-primary login-button' type="submit">{% trans "Login" %}</button>
 | 
					                        <button class='pull-right btn btn-primary login-button' type="submit">{% trans "Login" %}</button>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    </form>
 | 
					                    </form>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    {% if email_configured %}
 | 
				
			||||||
                    <hr><br>
 | 
					                    <hr><br>
 | 
				
			||||||
                    <p>{% trans "Forgotten your password?" %} - <a href='{% url "password_reset" %}'>{% trans "Click here to reset" %}</a></p>
 | 
					                    <p>{% trans "Forgotten your password?" %} - <a href='{% url "password_reset" %}'>{% trans "Click here to reset" %}</a></p>
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
 | 
					                    {% endif %}
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,18 +25,29 @@
 | 
				
			|||||||
            {% endif %}
 | 
					            {% endif %}
 | 
				
			||||||
        </td>
 | 
					        </td>
 | 
				
			||||||
    </tr>
 | 
					    </tr>
 | 
				
			||||||
 | 
					    {% if not django_q_running %}
 | 
				
			||||||
    <tr>
 | 
					    <tr>
 | 
				
			||||||
        <td><span class='fas fa-tasks'></span></td>
 | 
					        <td><span class='fas fa-tasks'></span></td>
 | 
				
			||||||
        <td>{% trans "Background Worker" %}</td>
 | 
					        <td>{% trans "Background Worker" %}</td>
 | 
				
			||||||
        <td>
 | 
					        <td>
 | 
				
			||||||
            {% if django_q_running %}
 | 
					            <a href='https://inventree.readthedocs.io/en/latest/admin/tasks'>
 | 
				
			||||||
            <span class='label label-green'>{% trans "Operational" %}</span>
 | 
					                <span class='label label-red'>{% trans "Background worker not running" %}</span>
 | 
				
			||||||
            {% else %}
 | 
					            </a>
 | 
				
			||||||
            <span class='label label-red'>{% trans "Not running" %}</span>
 | 
					 | 
				
			||||||
            {% endif %}
 | 
					 | 
				
			||||||
        </td>
 | 
					        </td>
 | 
				
			||||||
    </tr>
 | 
					    </tr>
 | 
				
			||||||
    {% endif %}
 | 
					    {% endif %}
 | 
				
			||||||
 | 
					    {% if not email_configured %}
 | 
				
			||||||
 | 
					    <tr>
 | 
				
			||||||
 | 
					        <td><span class='fas fa-envelope'></span></td>
 | 
				
			||||||
 | 
					        <td>{% trans "Email Settings" %}</td>
 | 
				
			||||||
 | 
					        <td>
 | 
				
			||||||
 | 
					            <a href='https://inventree.readthedocs.io/en/latest/admin/email'>
 | 
				
			||||||
 | 
					                <span class='label label-red'>{% trans "Email settings not configured" %}</span>
 | 
				
			||||||
 | 
					            </a>
 | 
				
			||||||
 | 
					        </td>
 | 
				
			||||||
 | 
					    </tr>
 | 
				
			||||||
 | 
					    {% endif %}
 | 
				
			||||||
 | 
					    {% endif %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    {% if not system_healthy %}
 | 
					    {% if not system_healthy %}
 | 
				
			||||||
    {% for issue in system_issues %}
 | 
					    {% for issue in system_issues %}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user