Skip to content

Conversation

@rowheat02
Copy link
Contributor

@rowheat02 rowheat02 commented Jul 18, 2025

Description

Please check if the PR fulfills these requirements

What kind of change does this PR introduce? (check one with "x", remove the others)

  • Bugfix
  • Feature
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Other... Please describe:

#11332

What is the current behavior?

#11332
No Resource Access By IP.

What is the new behavior?

  • Resource can be given access by IP.
  • For the whole system, IPs can be managed in the IP manager page(CRUD)
    image
  • Permission can be given in the Permission section of the resource( same list of IPs managed from IP manager page)
    image
  • If the resource has IP permission, the resource can be accessed even if user is not the owner or is not in the shared group.

Breaking change

Does this PR introduce a breaking change? (check one with "x", remove the other)

  • Yes, and I documented them in migration notes
  • No

Other useful information

IP Manager

  • New IP Manager section in Resources Catalog for managing IP address ranges
  • Full CRUD operations: Create, Read, Update, Delete IP ranges
  • CIDR format support (e.g., 192.168.1.0/24)
  • Search and filter functionality for IP ranges
  • Client-side pagination and filtering

IP-Based Resource Permissions

  • Integration with resource permissions system
  • Grant view/edit permissions to resources based on IP ranges
  • IP tab in Permissions panel for selecting IP ranges
  • Supports both user/group and IP-based access control simultaneously

@rowheat02 rowheat02 self-assigned this Jul 18, 2025
@rowheat02 rowheat02 changed the title mock ip addresses management and incoprate it in permission Grant access to MapStore resources by IP #972 Jul 18, 2025
@rowheat02
Copy link
Contributor Author

rowheat02 commented Jul 18, 2025

OUTDATED: See the description
Like in this video:
https://github.com/user-attachments/assets/28b814cc-ff1a-4c4a-b27e-1fb235228d06

  1. IP address management page has been created besides Tags management tab inside Manager page for IP management(CRUD)

    image
  2. On the Permission section of resource, IP addresses to grant access can be viewed and added as a permission.

    image
  3. Till now APIs for IP management are mocked.

Expectation from backend:

  • CRUD API Endpoints for IP address management
    - GET /geostore/rest/ipaddresses - List available IP addresses
    - POST /geostore/rest/ipaddresses - Create new IP address entry
    - PUT /geostore/rest/ipaddresses/{id} - Update IP address entry
    - DELETE /geostore/rest/ipaddresses/{id} - Delete IP address entry

  • On this end point rest/geostore/resources/resource/<resourceID>/permissions , similar to how groups are sent, IP rule are also sent.

    <SecurityRuleList><SecurityRule><canRead>true</canRead><canWrite>false</canWrite><group><id>479</id><groupName>everyone</groupName></group></SecurityRule><SecurityRule><canRead>true</canRead><canWrite>false</canWrite><group><id>53916</id><groupName>test_group</groupName></group></SecurityRule><SecurityRule><canRead>true</canRead><canWrite>false</canWrite><ip><id>3</id><ipAddress>192.12.22.1</ipAddress><description></description></ip></SecurityRule><SecurityRule><canRead>true</canRead><canWrite>true</canWrite><user><id>51359</id><name>rohitg</name></user></SecurityRule></SecurityRuleList>
    image - On GET api also this rule of IP also should be included.
  • After backend work, Needs to be revisited along with integrating the real APIs, some refactor and writing unit tests.

@offtherailz
Copy link
Member

de-DE translation is missing, see output of CI:

data.de-DE.json
-->	messages.ipmanager is missing
	messages.home.examples is present in the current file but not in the base file
-->	messages.manager.ipmanagerTab is missing
	messages.toc.backgroundSwitcher is present in the current file but not in the base file
-->	messages.resourcesCatalog.ipmanagerSection is missing
-->	messages.resourcesCatalog.ip is missing
-->	messages.resourcesCatalog.manageIPs is

@tdipisa tdipisa added this to the 2025.02.00 milestone Aug 11, 2025
@rowheat02 rowheat02 linked an issue Oct 29, 2025 that may be closed by this pull request
2 tasks
@rowheat02 rowheat02 marked this pull request as ready for review October 29, 2025 11:30
@rowheat02 rowheat02 requested a review from offtherailz October 29, 2025 11:31
@rowheat02 rowheat02 removed their assignment Oct 29, 2025
@tdipisa tdipisa modified the milestones: 2025.02.00, 2026.01.00 Nov 4, 2025
@tdipisa tdipisa added the BackportNeeded Commits provided for an issue need to be backported to the milestone's stable branch label Nov 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

BackportNeeded Commits provided for an issue need to be backported to the milestone's stable branch New Feature used for new functionalities

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Grant access to MapStore resources by IP

3 participants