Viewing File: /usr/local/cpanel/base/frontend/jupiter/tools/views/sslStatus.js

/*
 * tools/views/sslStatus.js                                Copyright 2022 cPanel, L.L.C.
 *                                                                 All rights reserved.
 * copyright@cpanel.net                                               http://cpanel.net
 * This code is subject to the cPanel license. Unauthorized copying is prohibited
 */

/* global define: false */

define(
    [
        "angular",
        "cjt/util/locale",
        "cjt/modules",
        "cjt/services/cpanel/SSLStatus",
        "uiBootstrap",
    ],
    function(angular, LOCALE, modules, SSLStatus) {

        "use strict";

        var MODULE_NAMESPACE = "cpanel.tools.views.sslStatus";
        var MODULE_DEPENDANCIES = [
            "cjt2.cpanel",
            SSLStatus.namespace,
        ];

        var CONTROLLER_NAME = "sslStatusController";
        var CONTROLLER_INJECTABLES = ["$scope", SSLStatus.serviceName, "$timeout"];

        var CONTROLLER = function SSLStatusController($scope, $service, $timeout) {

            $scope.sslStatusString = null;
            $scope.sslStatusLoaded = false;
            $scope.sslValidationIconClasses = "fas fa-spinner fa-spin";
            $scope.statusColorClasses = "";
            $scope.certErrorsMessage = "";
            $scope.domainLink = "#";

            $scope._setSSLCertificate = function _setSSLCertificate(sslCertificate) {
                $scope.sslStatusLoaded = true;
                $scope.sslStatusString = sslCertificate.getTypeName();
                $scope.expandedSslStatusString = sslCertificate.getTypeName({ stripMarkup: true });
                $scope.sslValidationIconClasses = sslCertificate.getIconClasses() === "fas fa-unlock-alt" ? "ri-lock-unlock-line" : "ri-lock-line";
                $scope.statusColorClasses = sslCertificate.getStatusColorClass();
                $scope.sslSecured = $scope.statusColorClasses !== "text-danger";
                $scope.certHasErrors = sslCertificate.hasErrors;
                $scope.certErrorsMessage = LOCALE.maketext("The certificate has the following errors: [list_and,_1]", sslCertificate.getErrors());

                // since a cert is always returned, if it has any kind of validation type, display it as ssl
                $scope.domainLink = sslCertificate.validationType ? "https://" + $scope.primaryDomain : "http://" + $scope.primaryDomain;
            };

            $scope._domainNotSet = function _domainNotSet() {
                throw "primaryDomain must be set on init";
            };

            // return this for testing
            return $timeout(function() {
                if (!$scope.primaryDomain) {
                    $scope._domainNotSet();
                    return;
                }
                $scope.domainLink = "http://" + $scope.primaryDomain;
                return $service.getDomainSSLCertificate($scope.primaryDomain, true).then($scope._setSSLCertificate.bind($scope));
            }, 1);

        };

        CONTROLLER_INJECTABLES.push(CONTROLLER);

        var app = angular.module(MODULE_NAMESPACE, MODULE_DEPENDANCIES);
        app.controller(CONTROLLER_NAME, CONTROLLER_INJECTABLES);

        return {
            "controller": CONTROLLER_NAME,
            "class": CONTROLLER,
            "namespace": MODULE_NAMESPACE,
        };
    }
);
Back to Directory File Manager