diff --git a/.version b/.version index 371a952d6..ccc99d021 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -2.12.2 +2.12.3 diff --git a/README.md b/README.md index 0e46f00f1..925aeb23d 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@
-
+
diff --git a/backend/internal/access-list.js b/backend/internal/access-list.js
index 10743bf60..f6043e18b 100644
--- a/backend/internal/access-list.js
+++ b/backend/internal/access-list.js
@@ -508,8 +508,13 @@ const internalAccessList = {
if (typeof item.password !== 'undefined' && item.password.length) {
logger.info('Adding: ' + item.username);
- utils.execFile('/usr/bin/htpasswd', ['-b', htpasswd_file, item.username, item.password])
- .then((/*result*/) => {
+ utils.execFile('openssl', ['passwd', '-apr1', item.password])
+ .then((res) => {
+ try {
+ fs.appendFileSync(htpasswd_file, item.username + ':' + res + '\n', {encoding: 'utf8'});
+ } catch (err) {
+ reject(err);
+ }
next();
})
.catch((err) => {
diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js
index 34b8fdf5a..f2e845a24 100644
--- a/backend/internal/certificate.js
+++ b/backend/internal/certificate.js
@@ -313,6 +313,9 @@ const internalCertificate = {
.where('is_deleted', 0)
.andWhere('id', data.id)
.allowGraph('[owner]')
+ .allowGraph('[proxy_hosts]')
+ .allowGraph('[redirection_hosts]')
+ .allowGraph('[dead_hosts]')
.first();
if (access_data.permission_visibility !== 'all') {
@@ -464,6 +467,9 @@ const internalCertificate = {
.where('is_deleted', 0)
.groupBy('id')
.allowGraph('[owner]')
+ .allowGraph('[proxy_hosts]')
+ .allowGraph('[redirection_hosts]')
+ .allowGraph('[dead_hosts]')
.orderBy('nice_name', 'ASC');
if (access_data.permission_visibility !== 'all') {
diff --git a/backend/models/certificate.js b/backend/models/certificate.js
index 534d927cb..d4ea21ad5 100644
--- a/backend/models/certificate.js
+++ b/backend/models/certificate.js
@@ -4,7 +4,6 @@
const db = require('../db');
const helpers = require('../lib/helpers');
const Model = require('objection').Model;
-const User = require('./user');
const now = require('./now_helper');
Model.knex(db);
@@ -68,6 +67,11 @@ class Certificate extends Model {
}
static get relationMappings () {
+ const ProxyHost = require('./proxy_host');
+ const DeadHost = require('./dead_host');
+ const User = require('./user');
+ const RedirectionHost = require('./redirection_host');
+
return {
owner: {
relation: Model.HasOneRelation,
@@ -79,6 +83,39 @@ class Certificate extends Model {
modify: function (qb) {
qb.where('user.is_deleted', 0);
}
+ },
+ proxy_hosts: {
+ relation: Model.HasManyRelation,
+ modelClass: ProxyHost,
+ join: {
+ from: 'certificate.id',
+ to: 'proxy_host.certificate_id'
+ },
+ modify: function (qb) {
+ qb.where('proxy_host.is_deleted', 0);
+ }
+ },
+ dead_hosts: {
+ relation: Model.HasManyRelation,
+ modelClass: DeadHost,
+ join: {
+ from: 'certificate.id',
+ to: 'dead_host.certificate_id'
+ },
+ modify: function (qb) {
+ qb.where('dead_host.is_deleted', 0);
+ }
+ },
+ redirection_hosts: {
+ relation: Model.HasManyRelation,
+ modelClass: RedirectionHost,
+ join: {
+ from: 'certificate.id',
+ to: 'redirection_host.certificate_id'
+ },
+ modify: function (qb) {
+ qb.where('redirection_host.is_deleted', 0);
+ }
}
};
}
diff --git a/frontend/js/app/dashboard/main.js b/frontend/js/app/dashboard/main.js
index c2e82f855..4765d061e 100644
--- a/frontend/js/app/dashboard/main.js
+++ b/frontend/js/app/dashboard/main.js
@@ -50,8 +50,7 @@ module.exports = Mn.View.extend({
onRender: function () {
let view = this;
- if (typeof view.stats.hosts === 'undefined') {
- Api.Reports.getHostStats()
+ Api.Reports.getHostStats()
.then(response => {
if (!view.isDestroyed()) {
view.stats.hosts = response;
@@ -61,7 +60,6 @@ module.exports = Mn.View.extend({
.catch(err => {
console.log(err);
});
- }
},
/**
diff --git a/frontend/js/app/nginx/certificates/list/item.ejs b/frontend/js/app/nginx/certificates/list/item.ejs
index 9a0d6b27d..179a81955 100644
--- a/frontend/js/app/nginx/certificates/list/item.ejs
+++ b/frontend/js/app/nginx/certificates/list/item.ejs
@@ -33,6 +33,13 @@