Merge branch 'master' into restore-manage-shebang
This commit is contained in:
commit
404b7a25bc
|
@ -329,12 +329,14 @@ def render(args):
|
|||
"""
|
||||
query = database.session_query(Certificate)
|
||||
|
||||
time_range = args.pop("time_range")
|
||||
if not time_range:
|
||||
six_month_old = arrow.now()\
|
||||
.shift(months=current_app.config.get("HIDE_EXPIRED_CERTS_AFTER_MONTHS", -6))\
|
||||
show_expired = args.pop("showExpired")
|
||||
if show_expired != 1:
|
||||
one_month_old = arrow.now()\
|
||||
.shift(months=current_app.config.get("HIDE_EXPIRED_CERTS_AFTER_MONTHS", -1))\
|
||||
.format("YYYY-MM-DD")
|
||||
query = query.filter(Certificate.not_after > six_month_old)
|
||||
query = query.filter(Certificate.not_after > one_month_old)
|
||||
|
||||
time_range = args.pop("time_range")
|
||||
|
||||
destination_id = args.pop("destination_id")
|
||||
notification_id = args.pop("notification_id", None)
|
||||
|
@ -445,7 +447,7 @@ def query_name(certificate_name, args):
|
|||
|
||||
def query_common_name(common_name, args):
|
||||
"""
|
||||
Helper function that queries for not expired certificates by common name and owner which have auto-rotate enabled
|
||||
Helper function that queries for not expired certificates by common name (and owner)
|
||||
|
||||
:param common_name:
|
||||
:param args:
|
||||
|
@ -462,7 +464,6 @@ def query_common_name(common_name, args):
|
|||
Certificate.query.filter(Certificate.cn.ilike(common_name))
|
||||
.filter(Certificate.owner.ilike(owner))
|
||||
.filter(Certificate.not_after >= current_time.format("YYYY-MM-DD"))
|
||||
.filter(Certificate.rotation.is_(True))
|
||||
.all()
|
||||
)
|
||||
|
||||
|
|
|
@ -347,6 +347,7 @@ class CertificatesList(AuthenticatedResource):
|
|||
)
|
||||
parser.add_argument("creator", type=str, location="args")
|
||||
parser.add_argument("show", type=str, location="args")
|
||||
parser.add_argument("showExpired", type=int, location="args")
|
||||
|
||||
args = parser.parse_args()
|
||||
args["user"] = g.user
|
||||
|
|
|
@ -67,14 +67,14 @@ class VaultSourcePlugin(SourcePlugin):
|
|||
"name": "vaultPath",
|
||||
"type": "str",
|
||||
"required": True,
|
||||
"validation": "^([a-zA-Z0-9_-]+/?)+$",
|
||||
"validation": "^([a-zA-Z0-9._-]+/?)+$",
|
||||
"helpMessage": "Must be a valid Vault secrets path",
|
||||
},
|
||||
{
|
||||
"name": "objectName",
|
||||
"type": "str",
|
||||
"required": True,
|
||||
"validation": "[0-9a-zA-Z:_-]+",
|
||||
"validation": "[0-9a-zA-Z.:_-]+",
|
||||
"helpMessage": "Object Name to search",
|
||||
},
|
||||
]
|
||||
|
@ -177,14 +177,14 @@ class VaultDestinationPlugin(DestinationPlugin):
|
|||
"name": "vaultPath",
|
||||
"type": "str",
|
||||
"required": True,
|
||||
"validation": "^([a-zA-Z0-9_-]+/?)+$",
|
||||
"validation": "^([a-zA-Z0-9._-]+/?)+$",
|
||||
"helpMessage": "Must be a valid Vault secrets path",
|
||||
},
|
||||
{
|
||||
"name": "objectName",
|
||||
"type": "str",
|
||||
"required": False,
|
||||
"validation": "[0-9a-zA-Z:_-]+",
|
||||
"validation": "[0-9a-zA-Z.:_-]+",
|
||||
"helpMessage": "Name to bundle certs under, if blank use cn",
|
||||
},
|
||||
{
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
</label>
|
||||
<div class="col-sm-10">
|
||||
<input name="commonName"
|
||||
uib-tooltip="If you need a certificate with multiple domains enter your primary domain here and the rest under 'Subject Alternate Names' by clicking 'More Options'"
|
||||
uib-tooltip="If you need a certificate with multiple domains enter your primary domain here and add additional 'DNSName' entries unders 'Subject Alternate Names' below"
|
||||
ng-model="certificate.commonName" placeholder="Common Name" class="form-control"
|
||||
ng-maxlength="64"
|
||||
ng-blur="certificate.attachCommonName()"
|
||||
|
|
|
@ -19,6 +19,9 @@ angular.module('lemur')
|
|||
|
||||
.controller('CertificatesViewController', function ($q, $scope, $uibModal, $stateParams, $location, CertificateApi, CertificateService, MomentService, ngTableParams, toaster) {
|
||||
$scope.filter = $stateParams;
|
||||
$scope.expiredText = ['Show Expired', 'Hide Expired'];
|
||||
$scope.expiredValue = 0;
|
||||
$scope.expiredButton = $scope.expiredText[$scope.expiredValue];
|
||||
$scope.certificateTable = new ngTableParams({
|
||||
page: 1, // show first page
|
||||
count: 10, // count per page
|
||||
|
@ -50,6 +53,34 @@ angular.module('lemur')
|
|||
}
|
||||
});
|
||||
|
||||
$scope.showExpired = function () {
|
||||
if ($scope.expiredValue === 0) {
|
||||
$scope.expiredValue = 1;
|
||||
}
|
||||
else {
|
||||
$scope.expiredValue = 0;
|
||||
}
|
||||
$scope.expiredButton = $scope.expiredText[$scope.expiredValue];
|
||||
$scope.certificateTable = new ngTableParams({
|
||||
page: 1, // show first page
|
||||
count: 10, // count per page
|
||||
sorting: {
|
||||
id: 'desc' // initial sorting
|
||||
},
|
||||
filter: $scope.filter
|
||||
}, {
|
||||
getData: function ($defer, params) {
|
||||
$scope.temp = angular.copy(params.url());
|
||||
$scope.temp.showExpired = $scope.expiredValue;
|
||||
CertificateApi.getList($scope.temp)
|
||||
.then(function (data) {
|
||||
params.total(data.total);
|
||||
$defer.resolve(data);
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$scope.momentService = MomentService;
|
||||
|
||||
$scope.remove = function (certificate) {
|
||||
|
|
|
@ -17,6 +17,11 @@
|
|||
btn-checkbox-true="1"
|
||||
btn-checkbox-false="0">Filter</button>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button ng-click="showExpired()" class="btn btn-info">
|
||||
{{ expiredButton }}
|
||||
</button>
|
||||
</div>
|
||||
<!--<select class="form-control" ng-model="show" ng-options="item.value as item.title for item in fields"></select>-->
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue