[PR #360] [MERGED] Client Access Lists #3228

Closed
opened 2026-02-26 07:38:32 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/NginxProxyManager/nginx-proxy-manager/pull/360
Author: @Indemnity83
Created: 4/11/2020
Status: Merged
Merged: 4/14/2020
Merged by: @jc21

Base: developHead: ip-access-control


📝 Commits (10+)

  • f990d3f add access list clients to back-end
  • 46a9f5c add basic functionality to front end
  • fd932c7 fix bugs preventing client rules from being updated
  • 8d432bd refine the UI labeling
  • 0f238a5 add satisfy configuration to the ui
  • 907e9e1 remove testing cruft
  • e9e5d29 expand address format
  • 005e64e valite auth/access rules in backend
  • e2ee2cb enforce a 'deny all' default rule
  • f5ee91a write access list to proxy host config

📊 Changes

18 files changed (+434 additions, -66 deletions)

View changed files

📝 backend/internal/access-list.js (+70 -20)
📝 backend/internal/proxy-host.js (+3 -3)
backend/migrations/20200410143839_access_list_client.js (+53 -0)
📝 backend/models/access_list.js (+20 -4)
backend/models/access_list_client.js (+58 -0)
📝 backend/schema/endpoints/access-lists.json (+63 -2)
📝 backend/templates/proxy_host.conf (+13 -3)
📝 frontend/js/app/nginx/access/form.ejs (+60 -14)
📝 frontend/js/app/nginx/access/form.js (+46 -13)
frontend/js/app/nginx/access/form/client.ejs (+13 -0)
frontend/js/app/nginx/access/form/client.js (+7 -0)
📝 frontend/js/app/nginx/access/list/item.ejs (+10 -0)
📝 frontend/js/app/nginx/access/list/main.ejs (+3 -1)
📝 frontend/js/app/nginx/access/main.js (+1 -1)
📝 frontend/js/app/nginx/proxy/access-list-item.ejs (+1 -1)
📝 frontend/js/app/nginx/proxy/form.js (+1 -1)
📝 frontend/js/i18n/messages.json (+11 -3)
📝 frontend/js/models/access-list.js (+1 -0)

📄 Description

This PR adds client (IP address) based access control to the application in a way that aims to cover the 80% case based on #356

There are a few significant outstanding tasks remaining to make this ready for showtime.

  • Address validation needs to be expanded to support IPv4, IPv6, CIDR notation and the 'all' keyword
  • The backend needs to validate that either an Authorization or Access rule has been provided
  • The Nginx config needs to actually reflect the access list that is defined
  • Write tests

Screen Shot 2020-04-11 at 12 34 48 AM
Screen Shot 2020-04-11 at 12 34 59 AM
Screen Shot 2020-04-11 at 12 35 15 AM
Screen Shot 2020-04-11 at 12 35 45 AM
Screen Shot 2020-04-11 at 12 36 07 AM


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/NginxProxyManager/nginx-proxy-manager/pull/360 **Author:** [@Indemnity83](https://github.com/Indemnity83) **Created:** 4/11/2020 **Status:** ✅ Merged **Merged:** 4/14/2020 **Merged by:** [@jc21](https://github.com/jc21) **Base:** `develop` ← **Head:** `ip-access-control` --- ### 📝 Commits (10+) - [`f990d3f`](https://github.com/NginxProxyManager/nginx-proxy-manager/commit/f990d3f674a661dddd3735d8d794c8bdde26ba29) add access list clients to back-end - [`46a9f5c`](https://github.com/NginxProxyManager/nginx-proxy-manager/commit/46a9f5cb965a597c83c648743c6f3e9063d63d96) add basic functionality to front end - [`fd932c7`](https://github.com/NginxProxyManager/nginx-proxy-manager/commit/fd932c76789fcf55b113f4982b755cde9915a8aa) fix bugs preventing client rules from being updated - [`8d432bd`](https://github.com/NginxProxyManager/nginx-proxy-manager/commit/8d432bd60a218748ff1839ba16d077b0552e1f27) refine the UI labeling - [`0f238a5`](https://github.com/NginxProxyManager/nginx-proxy-manager/commit/0f238a5021aa4f0fe7df5578778f732bf15d77c6) add satisfy configuration to the ui - [`907e9e1`](https://github.com/NginxProxyManager/nginx-proxy-manager/commit/907e9e182d528039fc8ba448660ae97d85c7b11f) remove testing cruft - [`e9e5d29`](https://github.com/NginxProxyManager/nginx-proxy-manager/commit/e9e5d293cc533b1985058acdd7c81c9214acaa29) expand address format - [`005e64e`](https://github.com/NginxProxyManager/nginx-proxy-manager/commit/005e64eb9fcbc7e603dae88a52cd89726794d452) valite auth/access rules in backend - [`e2ee2cb`](https://github.com/NginxProxyManager/nginx-proxy-manager/commit/e2ee2cbf2db518260a93ac06332b04890b58ad03) enforce a 'deny all' default rule - [`f5ee91a`](https://github.com/NginxProxyManager/nginx-proxy-manager/commit/f5ee91aeb3756b824aea32db8bfe72f8d4bb8604) write access list to proxy host config ### 📊 Changes **18 files changed** (+434 additions, -66 deletions) <details> <summary>View changed files</summary> 📝 `backend/internal/access-list.js` (+70 -20) 📝 `backend/internal/proxy-host.js` (+3 -3) ➕ `backend/migrations/20200410143839_access_list_client.js` (+53 -0) 📝 `backend/models/access_list.js` (+20 -4) ➕ `backend/models/access_list_client.js` (+58 -0) 📝 `backend/schema/endpoints/access-lists.json` (+63 -2) 📝 `backend/templates/proxy_host.conf` (+13 -3) 📝 `frontend/js/app/nginx/access/form.ejs` (+60 -14) 📝 `frontend/js/app/nginx/access/form.js` (+46 -13) ➕ `frontend/js/app/nginx/access/form/client.ejs` (+13 -0) ➕ `frontend/js/app/nginx/access/form/client.js` (+7 -0) 📝 `frontend/js/app/nginx/access/list/item.ejs` (+10 -0) 📝 `frontend/js/app/nginx/access/list/main.ejs` (+3 -1) 📝 `frontend/js/app/nginx/access/main.js` (+1 -1) 📝 `frontend/js/app/nginx/proxy/access-list-item.ejs` (+1 -1) 📝 `frontend/js/app/nginx/proxy/form.js` (+1 -1) 📝 `frontend/js/i18n/messages.json` (+11 -3) 📝 `frontend/js/models/access-list.js` (+1 -0) </details> ### 📄 Description This PR adds client (IP address) based access control to the application in a way that aims to cover the 80% case based on #356 There are a few significant outstanding tasks remaining to make this ready for showtime. - [x] Address validation needs to be expanded to support IPv4, IPv6, CIDR notation and the 'all' keyword - [x] The backend needs to validate that either an Authorization or Access rule has been provided - [x] The Nginx config needs to actually reflect the access list that is defined - [ ] ~~Write tests~~ ![Screen Shot 2020-04-11 at 12 34 48 AM](https://user-images.githubusercontent.com/35218/79038225-84179f80-7b8c-11ea-9a4d-866e63a16e22.png) ![Screen Shot 2020-04-11 at 12 34 59 AM](https://user-images.githubusercontent.com/35218/79038224-84179f80-7b8c-11ea-974e-8576e13c482b.png) ![Screen Shot 2020-04-11 at 12 35 15 AM](https://user-images.githubusercontent.com/35218/79038223-837f0900-7b8c-11ea-9a05-09daeb4e91fe.png) ![Screen Shot 2020-04-11 at 12 35 45 AM](https://user-images.githubusercontent.com/35218/79038222-837f0900-7b8c-11ea-8439-196314fa244a.png) ![Screen Shot 2020-04-11 at 12 36 07 AM](https://user-images.githubusercontent.com/35218/79038218-81b54580-7b8c-11ea-8b72-9bec5b066e61.png) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-26 07:38:32 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/nginx-proxy-manager-NginxProxyManager#3228
No description provided.