diff --git a/README.md b/README.md
index 4ab9db03b..e0f2df848 100644
--- a/README.md
+++ b/README.md
@@ -61,7 +61,7 @@
|----|----|----|----|----|
|
| - - \[x] [Admin Web UI](https://github.com/netbirdio/dashboard)
| - - \[x] [SSO & MFA support](https://docs.netbird.io/how-to/installation#running-net-bird-with-sso-login)
| - - \[x] [Public API](https://docs.netbird.io/api)
| |
| - - \[x] Peer-to-peer connections
| - - \[x] Auto peer discovery and configuration
| - - \[x] [Access control - groups & rules](https://docs.netbird.io/how-to/manage-network-access)
| - - \[x] [Setup keys for bulk network provisioning](https://docs.netbird.io/how-to/register-machines-using-setup-keys)
| - - \[x] Mac
|
-| - - \[x] Connection relay fallback
| - - \[x] [IdP integrations](https://docs.netbird.io/selfhosted/identity-providers)
| - - \[x] [Activity logging](https://docs.netbird.io/how-to/monitor-system-and-network-activity)
| - - \[x] [Self-hosting quickstart script](https://docs.netbird.io/selfhosted/selfhosted-quickstart)
| - - \[x] Windows
|
+| - - \[x] Connection relay fallback
| - - \[x] [IdP integrations](https://docs.netbird.io/selfhosted/identity-providers)
| - - \[x] [Activity logging](https://docs.netbird.io/how-to/audit-events-logging)
| - - \[x] [Self-hosting quickstart script](https://docs.netbird.io/selfhosted/selfhosted-quickstart)
| - - \[x] Windows
|
| - - \[x] [Routes to external networks](https://docs.netbird.io/how-to/routing-traffic-to-private-networks)
| - - \[x] [Private DNS](https://docs.netbird.io/how-to/manage-dns-in-your-network)
| - - \[x] [Device posture checks](https://docs.netbird.io/how-to/manage-posture-checks)
| - - \[x] IdP groups sync with JWT
| - - \[x] Android
|
| - - \[x] NAT traversal with BPF
| - - \[x] [Multiuser support](https://docs.netbird.io/how-to/add-users-to-your-network)
| - - \[x] Peer-to-peer encryption
|| - - \[x] iOS
|
||| - - \[x] [Quantum-resistance with Rosenpass](https://netbird.io/knowledge-hub/the-first-quantum-resistant-mesh-vpn)
|| - - \[x] OpenWRT
|
diff --git a/management/client/rest/users_test.go b/management/client/rest/users_test.go
index f1fbd206c..7a23ec11c 100644
--- a/management/client/rest/users_test.go
+++ b/management/client/rest/users_test.go
@@ -30,7 +30,7 @@ var (
Issued: ptr("api"),
LastLogin: &time.Time{},
Name: "M. Essam",
- Permissions: api.UserPermissions{
+ Permissions: &api.UserPermissions{
Default: map[string]bool{
"read": false,
"write": false,
diff --git a/management/server/http/api/openapi.yml b/management/server/http/api/openapi.yml
index 455bbfd79..82a55ddd7 100644
--- a/management/server/http/api/openapi.yml
+++ b/management/server/http/api/openapi.yml
@@ -188,7 +188,6 @@ components:
- auto_groups
- status
- is_blocked
- - permissions
UserPermissions:
type: object
properties:
diff --git a/management/server/http/api/types.gen.go b/management/server/http/api/types.gen.go
index 087fb5eef..3c1697339 100644
--- a/management/server/http/api/types.gen.go
+++ b/management/server/http/api/types.gen.go
@@ -1677,8 +1677,8 @@ type User struct {
LastLogin *time.Time `json:"last_login,omitempty"`
// Name User's name from idp provider
- Name string `json:"name"`
- Permissions UserPermissions `json:"permissions"`
+ Name string `json:"name"`
+ Permissions *UserPermissions `json:"permissions,omitempty"`
// Role User's NetBird account role
Role string `json:"role"`
diff --git a/management/server/http/handlers/users/users_handler.go b/management/server/http/handlers/users/users_handler.go
index 29f208de6..1aa9dffc9 100644
--- a/management/server/http/handlers/users/users_handler.go
+++ b/management/server/http/handlers/users/users_handler.go
@@ -328,7 +328,7 @@ func toRolesResponse(roles map[types.UserRole]roles.RolePermissions) []api.RoleP
func toUserWithPermissionsResponse(user *users.UserInfoWithPermissions, userID string) *api.User {
response := toUserResponse(user.UserInfo, userID)
- response.Permissions = api.UserPermissions{
+ response.Permissions = &api.UserPermissions{
IsRestricted: user.Restricted,
Default: toOperationsMapResponse(user.Permissions.AutoAllowNew),
Modules: toModulesMapResponse(user.Permissions.Permissions),
diff --git a/management/server/http/handlers/users/users_handler_test.go b/management/server/http/handlers/users/users_handler_test.go
index 0321068c2..94f2df8fc 100644
--- a/management/server/http/handlers/users/users_handler_test.go
+++ b/management/server/http/handlers/users/users_handler_test.go
@@ -605,7 +605,7 @@ func TestCurrentUser(t *testing.T) {
AutoGroups: []string{},
Issued: ptr("api"),
LastLogin: ptr(time.Time{}),
- Permissions: api.UserPermissions{
+ Permissions: &api.UserPermissions{
IsRestricted: false,
Default: map[string]bool{
"read": true,
@@ -630,7 +630,7 @@ func TestCurrentUser(t *testing.T) {
AutoGroups: []string{},
Issued: ptr("api"),
LastLogin: ptr(time.Time{}),
- Permissions: api.UserPermissions{
+ Permissions: &api.UserPermissions{
Default: map[string]bool{
"read": false,
"create": false,
@@ -654,7 +654,7 @@ func TestCurrentUser(t *testing.T) {
AutoGroups: []string{},
Issued: ptr("api"),
LastLogin: ptr(time.Time{}),
- Permissions: api.UserPermissions{
+ Permissions: &api.UserPermissions{
IsRestricted: false,
Default: map[string]bool{
"read": true,
@@ -687,7 +687,7 @@ func TestCurrentUser(t *testing.T) {
AutoGroups: []string{},
Issued: ptr("api"),
LastLogin: ptr(time.Time{}),
- Permissions: api.UserPermissions{
+ Permissions: &api.UserPermissions{
IsRestricted: true,
Default: map[string]bool{
"read": false,