mirror of
				https://github.com/NginxProxyManager/nginx-proxy-manager.git
				synced 2025-11-04 01:15:14 +00:00 
			
		
		
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			75dbbebf8d
			...
			bump-freed
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					c2965789a0 | 
@@ -5,8 +5,6 @@ const authModel  = require('../models/auth');
 | 
			
		||||
const helpers    = require('../lib/helpers');
 | 
			
		||||
const TokenModel = require('../models/token');
 | 
			
		||||
 | 
			
		||||
const ERROR_MESSAGE_INVALID_AUTH = 'Invalid email or password';
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
@@ -71,15 +69,15 @@ module.exports = {
 | 
			
		||||
													};
 | 
			
		||||
												});
 | 
			
		||||
										} else {
 | 
			
		||||
											throw new error.AuthError(ERROR_MESSAGE_INVALID_AUTH);
 | 
			
		||||
											throw new error.AuthError('Invalid password');
 | 
			
		||||
										}
 | 
			
		||||
									});
 | 
			
		||||
							} else {
 | 
			
		||||
								throw new error.AuthError(ERROR_MESSAGE_INVALID_AUTH);
 | 
			
		||||
								throw new error.AuthError('No password auth for user');
 | 
			
		||||
							}
 | 
			
		||||
						});
 | 
			
		||||
				} else {
 | 
			
		||||
					throw new error.AuthError(ERROR_MESSAGE_INVALID_AUTH);
 | 
			
		||||
					throw new error.AuthError('No relevant user found');
 | 
			
		||||
				}
 | 
			
		||||
			});
 | 
			
		||||
	},
 | 
			
		||||
 
 | 
			
		||||
@@ -1,34 +0,0 @@
 | 
			
		||||
const migrate_name = 'client_max_body_size';
 | 
			
		||||
const logger       = require('../logger').migrate;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Migrate
 | 
			
		||||
 *
 | 
			
		||||
 * @see http://knexjs.org/#Schema
 | 
			
		||||
 *
 | 
			
		||||
 * @param   {Object}  knex
 | 
			
		||||
 * @param   {Promise} Promise
 | 
			
		||||
 * @returns {Promise}
 | 
			
		||||
 */
 | 
			
		||||
exports.up = function (knex/*, Promise*/) {
 | 
			
		||||
	logger.info('[' + migrate_name + '] Migrating Up...');
 | 
			
		||||
 | 
			
		||||
	return knex.schema.table('proxy_host', function (proxy_host) {
 | 
			
		||||
		proxy_host.integer('client_max_body_size').notNull().unsigned().defaultTo('1');
 | 
			
		||||
	})
 | 
			
		||||
		.then(() => {
 | 
			
		||||
			logger.info('[' + migrate_name + '] proxy_host Table altered');
 | 
			
		||||
		});
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Undo Migrate
 | 
			
		||||
 *
 | 
			
		||||
 * @param   {Object}  knex
 | 
			
		||||
 * @param   {Promise} Promise
 | 
			
		||||
 * @returns {Promise}
 | 
			
		||||
 */
 | 
			
		||||
exports.down = function (knex, Promise) {
 | 
			
		||||
	logger.warn('[' + migrate_name + '] You can\'t migrate down this one.');
 | 
			
		||||
	return Promise.resolve(true);
 | 
			
		||||
};
 | 
			
		||||
@@ -9,7 +9,6 @@
 | 
			
		||||
		"domain_names",
 | 
			
		||||
		"forward_host",
 | 
			
		||||
		"forward_port",
 | 
			
		||||
		"client_max_body_size",
 | 
			
		||||
		"access_list_id",
 | 
			
		||||
		"certificate_id",
 | 
			
		||||
		"ssl_forced",
 | 
			
		||||
@@ -53,11 +52,6 @@
 | 
			
		||||
			"minimum": 1,
 | 
			
		||||
			"maximum": 65535
 | 
			
		||||
		},
 | 
			
		||||
		"client_max_body_size": {
 | 
			
		||||
			"type": "integer",
 | 
			
		||||
			"minimum": 1,
 | 
			
		||||
			"maximum": 4096
 | 
			
		||||
		},
 | 
			
		||||
		"access_list_id": {
 | 
			
		||||
			"$ref": "../common.json#/properties/access_list_id"
 | 
			
		||||
		},
 | 
			
		||||
@@ -118,9 +112,6 @@
 | 
			
		||||
					"forward_port": {
 | 
			
		||||
						"$ref": "#/properties/forward_port"
 | 
			
		||||
					},
 | 
			
		||||
					"client_max_body_size": {
 | 
			
		||||
						"$ref": "#/properties/client_max_body_size"
 | 
			
		||||
					},
 | 
			
		||||
					"forward_path": {
 | 
			
		||||
						"type": "string"
 | 
			
		||||
					},
 | 
			
		||||
 
 | 
			
		||||
@@ -19,9 +19,7 @@
 | 
			
		||||
		"incoming_port": {
 | 
			
		||||
			"type": "integer",
 | 
			
		||||
			"minimum": 1,
 | 
			
		||||
			"maximum": 65535,
 | 
			
		||||
			"if": {"properties": {"tcp_forwarding": {"const": true}}},
 | 
			
		||||
			"then": {"not": {"oneOf": [{"const": 80}, {"const": 443}]}}
 | 
			
		||||
			"maximum": 65535
 | 
			
		||||
		},
 | 
			
		||||
		"forwarding_host": {
 | 
			
		||||
			"anyOf": [
 | 
			
		||||
 
 | 
			
		||||
@@ -49,7 +49,8 @@
 | 
			
		||||
										"minLength": 1
 | 
			
		||||
									},
 | 
			
		||||
									"password": {
 | 
			
		||||
										"type": "string"
 | 
			
		||||
										"type": "string",
 | 
			
		||||
										"minLength": 1
 | 
			
		||||
									}
 | 
			
		||||
								}
 | 
			
		||||
							}
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,6 @@
 | 
			
		||||
									"domain_names": ["test.example.com"],
 | 
			
		||||
									"forward_host": "127.0.0.1",
 | 
			
		||||
									"forward_port": 8989,
 | 
			
		||||
									"client_max_body_size": 1,
 | 
			
		||||
									"access_list_id": 0,
 | 
			
		||||
									"certificate_id": 0,
 | 
			
		||||
									"ssl_forced": false,
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,6 @@
 | 
			
		||||
								"domain_names": ["test.example.com"],
 | 
			
		||||
								"forward_host": "192.168.0.10",
 | 
			
		||||
								"forward_port": 8989,
 | 
			
		||||
								"client_max_body_size": 1,
 | 
			
		||||
								"access_list_id": 0,
 | 
			
		||||
								"certificate_id": 0,
 | 
			
		||||
								"ssl_forced": false,
 | 
			
		||||
 
 | 
			
		||||
@@ -41,9 +41,6 @@
 | 
			
		||||
						"forward_port": {
 | 
			
		||||
							"$ref": "../../../../components/proxy-host-object.json#/properties/forward_port"
 | 
			
		||||
						},
 | 
			
		||||
						"client_max_body_size": {
 | 
			
		||||
							"$ref": "../../../../components/proxy-host-object.json#/properties/client_max_body_size"
 | 
			
		||||
						},
 | 
			
		||||
						"certificate_id": {
 | 
			
		||||
							"$ref": "../../../../components/proxy-host-object.json#/properties/certificate_id"
 | 
			
		||||
						},
 | 
			
		||||
@@ -103,7 +100,6 @@
 | 
			
		||||
								"domain_names": ["test.example.com"],
 | 
			
		||||
								"forward_host": "192.168.0.10",
 | 
			
		||||
								"forward_port": 8989,
 | 
			
		||||
								"client_max_body_size": 1,
 | 
			
		||||
								"access_list_id": 0,
 | 
			
		||||
								"certificate_id": 0,
 | 
			
		||||
								"ssl_forced": false,
 | 
			
		||||
 
 | 
			
		||||
@@ -29,9 +29,6 @@
 | 
			
		||||
						"forward_port": {
 | 
			
		||||
							"$ref": "../../../components/proxy-host-object.json#/properties/forward_port"
 | 
			
		||||
						},
 | 
			
		||||
						"client_max_body_size": {
 | 
			
		||||
							"$ref": "../../../components/proxy-host-object.json#/properties/client_max_body_size"
 | 
			
		||||
						},
 | 
			
		||||
						"certificate_id": {
 | 
			
		||||
							"$ref": "../../../components/proxy-host-object.json#/properties/certificate_id"
 | 
			
		||||
						},
 | 
			
		||||
@@ -91,7 +88,6 @@
 | 
			
		||||
								"domain_names": ["test.example.com"],
 | 
			
		||||
								"forward_host": "127.0.0.1",
 | 
			
		||||
								"forward_port": 8989,
 | 
			
		||||
								"client_max_body_size": 1,
 | 
			
		||||
								"access_list_id": 0,
 | 
			
		||||
								"certificate_id": 0,
 | 
			
		||||
								"ssl_forced": false,
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
    auth_basic            "Authorization required";
 | 
			
		||||
    auth_basic_user_file  /data/access/{{ access_list_id }};
 | 
			
		||||
 | 
			
		||||
    {% if access_list.pass_auth == 0 or access_list.pass_auth == true %}
 | 
			
		||||
    {% if access_list.pass_auth == 0 %}
 | 
			
		||||
    proxy_set_header Authorization "";
 | 
			
		||||
    {% endif %}
 | 
			
		||||
 | 
			
		||||
@@ -17,7 +17,7 @@
 | 
			
		||||
    deny all;
 | 
			
		||||
 | 
			
		||||
    # Access checks must...
 | 
			
		||||
    {% if access_list.satisfy_any == 1 or access_list.satisfy_any == true %}
 | 
			
		||||
    {% if access_list.satisfy_any == 1 %}
 | 
			
		||||
    satisfy any;
 | 
			
		||||
    {% else %}
 | 
			
		||||
    satisfy all;
 | 
			
		||||
 
 | 
			
		||||
@@ -5,16 +5,11 @@
 | 
			
		||||
  #listen [::]:80;
 | 
			
		||||
{% endif %}
 | 
			
		||||
{% if certificate -%}
 | 
			
		||||
  listen 443 ssl;
 | 
			
		||||
  listen 443 ssl{% if http2_support == 1 or http2_support == true %} http2{% endif %};
 | 
			
		||||
{% if ipv6 -%}
 | 
			
		||||
  listen [::]:443 ssl;
 | 
			
		||||
  listen [::]:443 ssl{% if http2_support == 1 or http2_support == true %} http2{% endif %};
 | 
			
		||||
{% else -%}
 | 
			
		||||
  #listen [::]:443;
 | 
			
		||||
{% endif %}
 | 
			
		||||
{% endif %}
 | 
			
		||||
  server_name {{ domain_names | join: " " }};
 | 
			
		||||
{% if http2_support == 1 or http2_support == true %}
 | 
			
		||||
  http2 on;
 | 
			
		||||
{% else -%}
 | 
			
		||||
  http2 off;
 | 
			
		||||
{% endif %}
 | 
			
		||||
@@ -7,7 +7,11 @@
 | 
			
		||||
    proxy_set_header X-Forwarded-For    $remote_addr;
 | 
			
		||||
    proxy_set_header X-Real-IP		$remote_addr;
 | 
			
		||||
 | 
			
		||||
    proxy_pass       {{ forward_scheme }}://{{ forward_host }}:{{ forward_port }}{{ forward_path }};
 | 
			
		||||
    set $proxy_forward_scheme {{ forward_scheme }};
 | 
			
		||||
    set $proxy_server         "{{ forward_host }}";
 | 
			
		||||
    set $proxy_port           {{ forward_port }};
 | 
			
		||||
 | 
			
		||||
    proxy_pass       $proxy_forward_scheme://$proxy_server:$proxy_port{{ forward_path }};
 | 
			
		||||
 | 
			
		||||
    {% include "_access.conf" %}
 | 
			
		||||
    {% include "_assets.conf" %}
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,5 @@ server {
 | 
			
		||||
  }
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
  # Custom
 | 
			
		||||
  include /data/nginx/custom/server_dead[.]conf;
 | 
			
		||||
}
 | 
			
		||||
{% endif %}
 | 
			
		||||
 
 | 
			
		||||
@@ -47,8 +47,6 @@ proxy_http_version 1.1;
 | 
			
		||||
  }
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
  client_max_body_size {{ client_max_body_size }}m;
 | 
			
		||||
 | 
			
		||||
  # Custom
 | 
			
		||||
  include /data/nginx/custom/server_proxy[.]conf;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -830,9 +830,9 @@ crc32-stream@^4.0.2:
 | 
			
		||||
    readable-stream "^3.4.0"
 | 
			
		||||
 | 
			
		||||
cross-spawn@^7.0.2:
 | 
			
		||||
  version "7.0.6"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
 | 
			
		||||
  integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
 | 
			
		||||
  version "7.0.3"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
 | 
			
		||||
  integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    path-key "^3.1.0"
 | 
			
		||||
    shebang-command "^2.0.0"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
location ~* ^.*\.(css|js|jpe?g|gif|png|webp|woff|woff2|eot|ttf|svg|ico|css\.map|js\.map)$ {
 | 
			
		||||
location ~* ^.*\.(css|js|jpe?g|gif|png|webp|woff|eot|ttf|svg|ico|css\.map|js\.map)$ {
 | 
			
		||||
	if_modified_since off;
 | 
			
		||||
 | 
			
		||||
	# use the public cache
 | 
			
		||||
 
 | 
			
		||||
@@ -50,6 +50,7 @@ networks:
 | 
			
		||||
Let's look at a Portainer example:
 | 
			
		||||
 | 
			
		||||
```yml
 | 
			
		||||
version: '3.8'
 | 
			
		||||
services:
 | 
			
		||||
 | 
			
		||||
  portainer:
 | 
			
		||||
@@ -91,6 +92,8 @@ This image supports the use of Docker secrets to import from files and keep sens
 | 
			
		||||
You can set any environment variable from a file by appending `__FILE` (double-underscore FILE) to the environmental variable name.
 | 
			
		||||
 | 
			
		||||
```yml
 | 
			
		||||
version: '3.8'
 | 
			
		||||
 | 
			
		||||
secrets:
 | 
			
		||||
  # Secrets are single-line text files where the sole content is the secret
 | 
			
		||||
  # Paths in this example assume that secrets are kept in local folder called ".secrets"
 | 
			
		||||
@@ -181,7 +184,6 @@ You can add your custom configuration snippet files at `/data/nginx/custom` as f
 | 
			
		||||
 - `/data/nginx/custom/server_stream.conf`: Included at the end of every stream server block
 | 
			
		||||
 - `/data/nginx/custom/server_stream_tcp.conf`: Included at the end of every TCP stream server block
 | 
			
		||||
 - `/data/nginx/custom/server_stream_udp.conf`: Included at the end of every UDP stream server block
 | 
			
		||||
 - `/data/nginx/custom/server_dead.conf`: Included at the end of every 404 server block
 | 
			
		||||
 | 
			
		||||
Every file is optional.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,7 @@ outline: deep
 | 
			
		||||
Create a `docker-compose.yml` file:
 | 
			
		||||
 | 
			
		||||
```yml
 | 
			
		||||
version: '3.8'
 | 
			
		||||
services:
 | 
			
		||||
  app:
 | 
			
		||||
    image: 'jc21/nginx-proxy-manager:latest'
 | 
			
		||||
@@ -54,6 +55,7 @@ are going to use.
 | 
			
		||||
Here is an example of what your `docker-compose.yml` will look like when using a MariaDB container:
 | 
			
		||||
 | 
			
		||||
```yml
 | 
			
		||||
version: '3.8'
 | 
			
		||||
services:
 | 
			
		||||
  app:
 | 
			
		||||
    image: 'jc21/nginx-proxy-manager:latest'
 | 
			
		||||
@@ -135,13 +137,5 @@ Email:    admin@example.com
 | 
			
		||||
Password: changeme
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Immediately after logging in with this default user you will be asked to modify your details and change your password. You can change defaults with:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
    environment:
 | 
			
		||||
      INITIAL_ADMIN_EMAIL: my@example.com
 | 
			
		||||
      INITIAL_ADMIN_PASSWORD: mypassword1
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Immediately after logging in with this default user you will be asked to modify your details and change your password.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								docs/src/third-party/index.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								docs/src/third-party/index.md
									
									
									
									
										vendored
									
									
								
							@@ -12,7 +12,6 @@ Known integrations:
 | 
			
		||||
- [HomeAssistant Hass.io plugin](https://github.com/hassio-addons/addon-nginx-proxy-manager)
 | 
			
		||||
- [UnRaid / Synology](https://github.com/jlesage/docker-nginx-proxy-manager)
 | 
			
		||||
- [Proxmox Scripts](https://github.com/ej52/proxmox-scripts/tree/main/apps/nginx-proxy-manager)
 | 
			
		||||
- [Proxmox VE Helper-Scripts](https://community-scripts.github.io/ProxmoxVE/scripts?id=nginxproxymanager)
 | 
			
		||||
- [nginxproxymanagerGraf](https://github.com/ma-karai/nginxproxymanagerGraf)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -873,9 +873,9 @@ mitt@^3.0.1:
 | 
			
		||||
  integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==
 | 
			
		||||
 | 
			
		||||
nanoid@^3.3.7:
 | 
			
		||||
  version "3.3.8"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf"
 | 
			
		||||
  integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==
 | 
			
		||||
  version "3.3.7"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
 | 
			
		||||
  integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
 | 
			
		||||
 | 
			
		||||
oniguruma-to-js@0.4.3:
 | 
			
		||||
  version "0.4.3"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<td class="text-center">
 | 
			
		||||
    <div class="avatar d-block" style="background-image: url(<%- (owner && owner.avatar) || '/images/default-avatar.jpg' %>)" title="Owned by <%- (owner && owner.name) || 'a deleted user' %>">
 | 
			
		||||
        <span class="avatar-status <%- owner && !owner.is_disabled ? 'bg-green' : 'bg-red' %>"></span>
 | 
			
		||||
    <div class="avatar d-block" style="background-image: url(<%- owner.avatar || '/images/default-avatar.jpg' %>)" title="Owned by <%- owner.name %>">
 | 
			
		||||
        <span class="avatar-status <%- owner.is_disabled ? 'bg-red' : 'bg-green' %>"></span>
 | 
			
		||||
    </div>
 | 
			
		||||
</td>
 | 
			
		||||
<td>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<td class="text-center">
 | 
			
		||||
    <div class="avatar d-block" style="background-image: url(<%- (owner && owner.avatar) || '/images/default-avatar.jpg' %>)" title="Owned by <%- (owner && owner.name) || 'a deleted user' %>">
 | 
			
		||||
        <span class="avatar-status <%- owner && !owner.is_disabled ? 'bg-green' : 'bg-red' %>"></span>
 | 
			
		||||
    <div class="avatar d-block" style="background-image: url(<%- owner.avatar || '/images/default-avatar.jpg' %>)" title="Owned by <%- owner.name %>">
 | 
			
		||||
        <span class="avatar-status <%- owner.is_disabled ? 'bg-red' : 'bg-green' %>"></span>
 | 
			
		||||
    </div>
 | 
			
		||||
</td>
 | 
			
		||||
<td>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<td class="text-center">
 | 
			
		||||
    <div class="avatar d-block" style="background-image: url(<%- (owner && owner.avatar) || '/images/default-avatar.jpg' %>)" title="Owned by <%- (owner && owner.name) || 'a deleted user' %>">
 | 
			
		||||
        <span class="avatar-status <%- owner && !owner.is_disabled ? 'bg-green' : 'bg-red' %>"></span>
 | 
			
		||||
    <div class="avatar d-block" style="background-image: url(<%- owner.avatar || '/images/default-avatar.jpg' %>)" title="Owned by <%- owner.name %>">
 | 
			
		||||
        <span class="avatar-status <%- owner.is_disabled ? 'bg-red' : 'bg-green' %>"></span>
 | 
			
		||||
    </div>
 | 
			
		||||
</td>
 | 
			
		||||
<td>
 | 
			
		||||
 
 | 
			
		||||
@@ -81,12 +81,7 @@
 | 
			
		||||
                                </label>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </div>
 | 
			
		||||
                        <div class="col-sm-12 col-md-12">
 | 
			
		||||
                            <div class="form-group">
 | 
			
		||||
                                <label class="form-label"><%- i18n('proxy-hosts', 'client-max-body-size' ) %></label>
 | 
			
		||||
                                <input name="client_max_body_size" type="number" class="form-control text-monospace" placeholder="1" value="<%- client_max_body_size %>" required>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </div>
 | 
			
		||||
 | 
			
		||||
                        <div class="col-sm-12 col-md-12">
 | 
			
		||||
                            <div class="form-group">
 | 
			
		||||
                                <label class="form-label"><%- i18n('proxy-hosts', 'access-list') %></label>
 | 
			
		||||
 
 | 
			
		||||
@@ -160,7 +160,6 @@ module.exports = Mn.View.extend({
 | 
			
		||||
 | 
			
		||||
            // Manipulate
 | 
			
		||||
            data.forward_port            = parseInt(data.forward_port, 10);
 | 
			
		||||
            data.client_max_body_size    = parseInt(data.client_max_body_size, 10);
 | 
			
		||||
            data.block_exploits          = !!data.block_exploits;
 | 
			
		||||
            data.caching_enabled         = !!data.caching_enabled;
 | 
			
		||||
            data.allow_websocket_upgrade = !!data.allow_websocket_upgrade;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<td class="text-center">
 | 
			
		||||
    <div class="avatar d-block" style="background-image: url(<%- (owner && owner.avatar) || '/images/default-avatar.jpg' %>)" title="Owned by <%- (owner && owner.name) || 'a deleted user' %>">
 | 
			
		||||
        <span class="avatar-status <%- owner && !owner.is_disabled ? 'bg-green' : 'bg-red' %>"></span>
 | 
			
		||||
    <div class="avatar d-block" style="background-image: url(<%- owner.avatar || '/images/default-avatar.jpg' %>)" title="Owned by <%- owner.name %>">
 | 
			
		||||
        <span class="avatar-status <%- owner.is_disabled ? 'bg-red' : 'bg-green' %>"></span>
 | 
			
		||||
    </div>
 | 
			
		||||
</td>
 | 
			
		||||
<td>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<td class="text-center">
 | 
			
		||||
    <div class="avatar d-block" style="background-image: url(<%- (owner && owner.avatar) || '/images/default-avatar.jpg' %>)" title="Owned by <%- (owner && owner.name) || 'a deleted user' %>">
 | 
			
		||||
        <span class="avatar-status <%- owner && !owner.is_disabled ? 'bg-green' : 'bg-red' %>"></span>
 | 
			
		||||
    <div class="avatar d-block" style="background-image: url(<%- owner.avatar || '/images/default-avatar.jpg' %>)" title="Owned by <%- owner.name %>">
 | 
			
		||||
        <span class="avatar-status <%- owner.is_disabled ? 'bg-red' : 'bg-green' %>"></span>
 | 
			
		||||
    </div>
 | 
			
		||||
</td>
 | 
			
		||||
<td>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
<td class="text-center">
 | 
			
		||||
    <div class="avatar d-block" style="background-image: url(<%- (owner && owner.avatar) || '/images/default-avatar.jpg' %>)" title="Owned by <%- (owner && owner.name) || 'a deleted user' %>">
 | 
			
		||||
        <span class="avatar-status <%- owner && !owner.is_disabled ? 'bg-green' : 'bg-red' %>"></span>
 | 
			
		||||
    <div class="avatar d-block" style="background-image: url(<%- owner.avatar || '/images/default-avatar.jpg' %>)" title="Owned by <%- owner.name %>">
 | 
			
		||||
        <span class="avatar-status <%- owner.is_disabled ? 'bg-red' : 'bg-green' %>"></span>
 | 
			
		||||
    </div>
 | 
			
		||||
</td>
 | 
			
		||||
<td>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
<div class="modal-content">
 | 
			
		||||
    <form>
 | 
			
		||||
    <div class="modal-header">
 | 
			
		||||
        <h5 class="modal-title"><%- i18n('users', 'form-title', {id: id}) %></h5>
 | 
			
		||||
        <button type="button" class="close cancel" aria-label="Close" data-dismiss="modal"> </button>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="modal-body">
 | 
			
		||||
        <form>
 | 
			
		||||
            <div class="row">
 | 
			
		||||
                <div class="col-sm-6 col-md-6">
 | 
			
		||||
                    <div class="form-group">
 | 
			
		||||
@@ -49,10 +49,10 @@
 | 
			
		||||
                </div>
 | 
			
		||||
                <% } %>
 | 
			
		||||
            </div>
 | 
			
		||||
        </form>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="modal-footer">
 | 
			
		||||
        <button type="button" class="btn btn-secondary cancel" data-dismiss="modal"><%- i18n('str', 'cancel') %></button>
 | 
			
		||||
            <button type="submit" class="btn btn-teal save"><%- i18n('str', 'save') %></button>
 | 
			
		||||
        <button type="button" class="btn btn-teal save"><%- i18n('str', 'save') %></button>
 | 
			
		||||
    </div>
 | 
			
		||||
    </form>
 | 
			
		||||
</div>
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,7 @@ module.exports = Mn.View.extend({
 | 
			
		||||
 | 
			
		||||
    events: {
 | 
			
		||||
 | 
			
		||||
        'submit @ui.form': function (e) {
 | 
			
		||||
        'click @ui.save': function (e) {
 | 
			
		||||
            e.preventDefault();
 | 
			
		||||
            this.ui.error.hide();
 | 
			
		||||
            let view = this;
 | 
			
		||||
 
 | 
			
		||||
@@ -125,7 +125,6 @@
 | 
			
		||||
      "forward-scheme": "Scheme",
 | 
			
		||||
      "forward-host": "Forward Hostname / IP",
 | 
			
		||||
      "forward-port": "Forward Port",
 | 
			
		||||
      "client-max-body-size": "Max proxied upload size (Mb)",
 | 
			
		||||
      "delete": "Delete Proxy Host",
 | 
			
		||||
      "delete-confirm": "Are you sure you want to delete the Proxy host for: <strong>{domains}</strong>?",
 | 
			
		||||
      "help-title": "What is a Proxy Host?",
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,6 @@ const model = Backbone.Model.extend({
 | 
			
		||||
            forward_scheme:          'http',
 | 
			
		||||
            forward_host:            '',
 | 
			
		||||
            forward_port:            null,
 | 
			
		||||
            client_max_body_size:    1,
 | 
			
		||||
            access_list_id:          0,
 | 
			
		||||
            certificate_id:          0,
 | 
			
		||||
            ssl_forced:              false,
 | 
			
		||||
 
 | 
			
		||||
@@ -2648,9 +2648,9 @@ electron-to-chromium@^1.3.47:
 | 
			
		||||
  integrity sha512-67V62Z4CFOiAtox+o+tosGfVk0QX4DJgH609tjT8QymbJZVAI/jWnAthnr8c5hnRNziIRwkc9EMQYejiVz3/9Q==
 | 
			
		||||
 | 
			
		||||
elliptic@^6.5.3, elliptic@^6.5.4:
 | 
			
		||||
  version "6.6.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.0.tgz#5919ec723286c1edf28685aa89261d4761afa210"
 | 
			
		||||
  integrity sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==
 | 
			
		||||
  version "6.5.7"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.7.tgz#8ec4da2cb2939926a1b9a73619d768207e647c8b"
 | 
			
		||||
  integrity sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    bn.js "^4.11.9"
 | 
			
		||||
    brorand "^1.1.0"
 | 
			
		||||
 
 | 
			
		||||
@@ -194,7 +194,7 @@
 | 
			
		||||
	"freedns": {
 | 
			
		||||
		"name": "FreeDNS",
 | 
			
		||||
		"package_name": "certbot-dns-freedns",
 | 
			
		||||
		"version": "~=0.1.0",
 | 
			
		||||
		"version": "~=0.2.0",
 | 
			
		||||
		"dependencies": "",
 | 
			
		||||
		"credentials": "dns_freedns_username = myremoteuser\ndns_freedns_password = verysecureremoteuserpassword",
 | 
			
		||||
		"full_plugin_name": "dns-freedns"
 | 
			
		||||
@@ -247,14 +247,6 @@
 | 
			
		||||
		"credentials": "dns_hetzner_api_token = 0123456789abcdef0123456789abcdef",
 | 
			
		||||
		"full_plugin_name": "dns-hetzner"
 | 
			
		||||
	},
 | 
			
		||||
	"hostingnl": {
 | 
			
		||||
		"name": "Hosting.nl",
 | 
			
		||||
		"package_name": "certbot-dns-hostingnl",
 | 
			
		||||
		"version": "~=0.1.5",
 | 
			
		||||
		"dependencies": "",
 | 
			
		||||
		"credentials": "dns_hostingnl_api_key = 0123456789abcdef0123456789abcdef",
 | 
			
		||||
		"full_plugin_name": "dns-hostingnl"
 | 
			
		||||
	},
 | 
			
		||||
	"hover": {
 | 
			
		||||
		"name": "Hover",
 | 
			
		||||
		"package_name": "certbot-dns-hover",
 | 
			
		||||
@@ -311,14 +303,6 @@
 | 
			
		||||
		"credentials": "dns_joker_username = <Dynamic DNS Authentication Username>\ndns_joker_password = <Dynamic DNS Authentication Password>\ndns_joker_domain = <Dynamic DNS Domain>",
 | 
			
		||||
		"full_plugin_name": "dns-joker"
 | 
			
		||||
	},
 | 
			
		||||
	"leaseweb": {
 | 
			
		||||
		"name": "LeaseWeb",
 | 
			
		||||
		"package_name": "certbot-dns-leaseweb",
 | 
			
		||||
		"version": "~=1.0.1",
 | 
			
		||||
		"dependencies": "",
 | 
			
		||||
		"credentials": "dns_leaseweb_api_token = 01234556789",
 | 
			
		||||
		"full_plugin_name": "dns-leaseweb"
 | 
			
		||||
	},
 | 
			
		||||
	"linode": {
 | 
			
		||||
		"name": "Linode",
 | 
			
		||||
		"package_name": "certbot-dns-linode",
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,6 @@ describe('Proxy Hosts endpoints', () => {
 | 
			
		||||
				forward_scheme: 'http',
 | 
			
		||||
				forward_host:   '1.1.1.1',
 | 
			
		||||
				forward_port:   80,
 | 
			
		||||
				client_max_body_size: 1,
 | 
			
		||||
				access_list_id: '0',
 | 
			
		||||
				certificate_id: 0,
 | 
			
		||||
				meta:           {
 | 
			
		||||
 
 | 
			
		||||
@@ -132,9 +132,9 @@
 | 
			
		||||
  integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==
 | 
			
		||||
 | 
			
		||||
"@eslint/plugin-kit@^0.2.0":
 | 
			
		||||
  version "0.2.3"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz#812980a6a41ecf3a8341719f92a6d1e784a2e0e8"
 | 
			
		||||
  integrity sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==
 | 
			
		||||
  version "0.2.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz#8712dccae365d24e9eeecb7b346f85e750ba343d"
 | 
			
		||||
  integrity sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    levn "^0.4.1"
 | 
			
		||||
 | 
			
		||||
@@ -628,9 +628,9 @@ core-util-is@1.0.2:
 | 
			
		||||
  integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
 | 
			
		||||
 | 
			
		||||
cross-spawn@^7.0.0, cross-spawn@^7.0.2:
 | 
			
		||||
  version "7.0.6"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
 | 
			
		||||
  integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
 | 
			
		||||
  version "7.0.3"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
 | 
			
		||||
  integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    path-key "^3.1.0"
 | 
			
		||||
    shebang-command "^2.0.0"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user