Bläddra i källkod

Merge pull request #1966 from NginxProxyManager/develop

v2.9.17
jc21 3 år sedan
förälder
incheckning
063ac4619f

+ 1 - 1
.version

@@ -1 +1 @@
-2.9.16
+2.9.17

+ 8 - 5
README.md

@@ -1,16 +1,13 @@
 <p align="center">
 <p align="center">
 	<img src="https://nginxproxymanager.com/github.png">
 	<img src="https://nginxproxymanager.com/github.png">
 	<br><br>
 	<br><br>
-	<img src="https://img.shields.io/badge/version-2.9.16-green.svg?style=for-the-badge">
+	<img src="https://img.shields.io/badge/version-2.9.17-green.svg?style=for-the-badge">
 	<a href="https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager">
 	<a href="https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager">
 		<img src="https://img.shields.io/docker/stars/jc21/nginx-proxy-manager.svg?style=for-the-badge">
 		<img src="https://img.shields.io/docker/stars/jc21/nginx-proxy-manager.svg?style=for-the-badge">
 	</a>
 	</a>
 	<a href="https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager">
 	<a href="https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager">
 		<img src="https://img.shields.io/docker/pulls/jc21/nginx-proxy-manager.svg?style=for-the-badge">
 		<img src="https://img.shields.io/docker/pulls/jc21/nginx-proxy-manager.svg?style=for-the-badge">
 	</a>
 	</a>
-	<a href="https://ci.nginxproxymanager.com/blue/organizations/jenkins/nginx-proxy-manager/branches/">
-		<img src="https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fci.nginxproxymanager.com%2Fjob%2Fnginx-proxy-manager%2Fjob%2Fmaster&style=for-the-badge">
-	</a>
 	<a href="https://gitter.im/nginx-proxy-manager/community">
 	<a href="https://gitter.im/nginx-proxy-manager/community">
 		<img alt="Gitter" src="https://img.shields.io/gitter/room/nginx-proxy-manager/community?style=for-the-badge">
 		<img alt="Gitter" src="https://img.shields.io/gitter/room/nginx-proxy-manager/community?style=for-the-badge">
 	</a>
 	</a>
@@ -520,7 +517,13 @@ Special thanks to the following contributors:
 		<td align="center">
 		<td align="center">
 			<a href="https://github.com/ivankristianto">
 			<a href="https://github.com/ivankristianto">
 				<img src="https://avatars.githubusercontent.com/u/656006?v=4" width="80" alt=""/>
 				<img src="https://avatars.githubusercontent.com/u/656006?v=4" width="80" alt=""/>
-				<br /><sub><b>Ivan Kristianto </b></sub>
+				<br /><sub><b>Ivan Kristianto</b></sub>
+			</a>
+		</td>
+		<td align="center">
+			<a href="https://github.com/omercnet">
+				<img src="https://avatars.githubusercontent.com/u/639682?v=4" width="80" alt=""/>
+				<br /><sub><b>Omer Cohen</b></sub>
 			</a>
 			</a>
 		</td>
 		</td>
 	</tr>
 	</tr>

+ 1 - 1
docker/rootfs/etc/services.d/nginx/run

@@ -24,7 +24,7 @@ chown root /tmp/nginx
 
 
 # Dynamically generate resolvers file, if resolver is IPv6, enclose in `[]`
 # Dynamically generate resolvers file, if resolver is IPv6, enclose in `[]`
 # thanks @tfmm
 # thanks @tfmm
-echo resolver "$(awk 'BEGIN{ORS=" "} $1=="nameserver" { sub(/%.*$/,"",$2); print ($2 ~ ":")? "["$2"]": $2}' /etc/resolv.conf);" > /etc/nginx/conf.d/include/resolvers.conf
+echo resolver "$(awk 'BEGIN{ORS=" "} $1=="nameserver" { sub(/%.*$/,"",$2); print ($2 ~ ":")? "["$2"]": $2}' /etc/resolv.conf) valid=10s;" > /etc/nginx/conf.d/include/resolvers.conf
 
 
 # Generate dummy self-signed certificate.
 # Generate dummy self-signed certificate.
 if [ ! -f /data/nginx/dummycert.pem ] || [ ! -f /data/nginx/dummykey.pem ]
 if [ ! -f /data/nginx/dummycert.pem ] || [ ! -f /data/nginx/dummykey.pem ]

+ 6 - 6
docs/yarn.lock

@@ -7718,9 +7718,9 @@ pretty-time@^1.1.0:
   integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==
   integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==
 
 
 prismjs@^1.13.0, prismjs@^1.20.0:
 prismjs@^1.13.0, prismjs@^1.20.0:
-  version "1.25.0"
-  resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.25.0.tgz#6f822df1bdad965734b310b315a23315cf999756"
-  integrity sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg==
+  version "1.27.0"
+  resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.27.0.tgz#bb6ee3138a0b438a3653dd4d6ce0cc6510a45057"
+  integrity sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==
 
 
 private@^0.1.8:
 private@^0.1.8:
   version "0.1.8"
   version "0.1.8"
@@ -9681,9 +9681,9 @@ url-parse-lax@^3.0.0:
     prepend-http "^2.0.0"
     prepend-http "^2.0.0"
 
 
 url-parse@^1.4.3, url-parse@^1.4.7:
 url-parse@^1.4.3, url-parse@^1.4.7:
-  version "1.5.2"
-  resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.2.tgz#a4eff6fd5ff9fe6ab98ac1f79641819d13247cda"
-  integrity sha512-6bTUPERy1muxxYClbzoRo5qtQuyoGEbzbQvi0SW4/8U8UyVkAQhWFBlnigqJkRm4su4x1zDQfNbEzWkt+vchcg==
+  version "1.5.9"
+  resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.9.tgz#05ff26484a0b5e4040ac64dcee4177223d74675e"
+  integrity sha512-HpOvhKBvre8wYez+QhHcYiVvVmeF6DVnuSOOPhe3cTum3BnqHhvKaZm8FU5yTiOu/Jut2ZpB2rA/SbBA1JIGlQ==
   dependencies:
   dependencies:
     querystringify "^2.1.1"
     querystringify "^2.1.1"
     requires-port "^1.0.0"
     requires-port "^1.0.0"

+ 1 - 1
frontend/js/app/nginx/dead/delete.ejs

@@ -7,7 +7,7 @@
         <form>
         <form>
             <div class="row">
             <div class="row">
                 <div class="col-sm-12 col-md-12">
                 <div class="col-sm-12 col-md-12">
-                    <%= i18n('dead-hosts', 'delete-confirm', {domains: domain_names.join(', ')}) %>
+                    <%= i18n('dead-hosts', 'delete-confirm', {domains: domain_names.join(', ').toHtmlEntities()}) %>
                     <% if (certificate_id) { %>
                     <% if (certificate_id) { %>
                         <br><br>
                         <br><br>
                         <%- i18n('ssl', 'delete-ssl') %>
                         <%- i18n('ssl', 'delete-ssl') %>

+ 1 - 1
frontend/js/app/nginx/proxy/delete.ejs

@@ -7,7 +7,7 @@
         <form>
         <form>
             <div class="row">
             <div class="row">
                 <div class="col-sm-12 col-md-12">
                 <div class="col-sm-12 col-md-12">
-                    <%= i18n('proxy-hosts', 'delete-confirm', {domains: domain_names.join(', ')}) %>
+                    <%= i18n('proxy-hosts', 'delete-confirm', {domains: domain_names.join(', ').toHtmlEntities()}) %>
                     <% if (certificate_id) { %>
                     <% if (certificate_id) { %>
                         <br><br>
                         <br><br>
                         <%- i18n('ssl', 'delete-ssl') %>
                         <%- i18n('ssl', 'delete-ssl') %>

+ 1 - 1
frontend/js/app/nginx/redirection/delete.ejs

@@ -7,7 +7,7 @@
         <form>
         <form>
             <div class="row">
             <div class="row">
                 <div class="col-sm-12 col-md-12">
                 <div class="col-sm-12 col-md-12">
-                    <%= i18n('redirection-hosts', 'delete-confirm', {domains: domain_names.join(', ')}) %>
+                    <%= i18n('redirection-hosts', 'delete-confirm', {domains: domain_names.join(', ').toHtmlEntities()}) %>
                     <% if (certificate_id) { %>
                     <% if (certificate_id) { %>
                         <br><br>
                         <br><br>
                         <%- i18n('ssl', 'delete-ssl') %>
                         <%- i18n('ssl', 'delete-ssl') %>

+ 1 - 1
frontend/js/app/user/delete.ejs

@@ -7,7 +7,7 @@
         <form>
         <form>
             <div class="row">
             <div class="row">
                 <div class="col-sm-12 col-md-12">
                 <div class="col-sm-12 col-md-12">
-                    <%= i18n('users', 'delete-confirm', {name: name}) %>
+                    <%= i18n('users', 'delete-confirm', {name: name.toHtmlEntities()}) %>
                 </div>
                 </div>
             </div>
             </div>
         </form>
         </form>

+ 7 - 0
frontend/js/index.js

@@ -103,6 +103,13 @@ window.tabler = {
     }
     }
 };
 };
 
 
+String.prototype.toHtmlEntities = function() {
+    return this.replace(/./gm, function(s) {
+        // return "&#" + s.charCodeAt(0) + ";";
+        return (s.match(/[a-z0-9\s]+/i)) ? s : "&#" + s.charCodeAt(0) + ";";
+    });
+};
+
 require('tabler-core');
 require('tabler-core');
 
 
 const App = require('./app/main');
 const App = require('./app/main');

+ 11 - 11
frontend/webpack.config.js

@@ -92,17 +92,17 @@ module.exports = {
 				]
 				]
 			},
 			},
 			{
 			{
-        test: /source-sans-pro.*\.(woff(2)?)(\?v=\d+\.\d+\.\d+)?$/,
-        use: [
-          {
-            loader: 'file-loader',
-            options: {
-              name: '[name].[ext]',
-              outputPath: 'assets/'
-            }
-          }
-        ]
-      }
+				test: /source-sans-pro.*\.(woff(2)?)(\?v=\d+\.\d+\.\d+)?$/,
+				use: [
+					{
+					loader: 'file-loader',
+					options: {
+						name: '[name].[ext]',
+						outputPath: 'assets/'
+					}
+					}
+				]
+			}
 		]
 		]
 	},
 	},
 	plugins:   [
 	plugins:   [