Roles & Permissions - Edit Alerts does not allow for ACK of alert

With “Edit Alerts” added to a role, users with this role are not able to ACK alerts, they get “This action is unauthorized.” when trying to ACK an alert, however, the ACK button is visible. I tried moving them back to “global-read”, but that completely removes the ACK button (I think this is new on the latest release). I am using RADIUS authentication, and my role is applied via:

Access Type = ACCESS_ACCEPT
Filter-ID = librenms_role_network-services-user

Am I missing something?

Thanks again for everything you do!

Edit: On a different LibreNMS instance I created a local user and applied the same role, same issue. So its not related to radius authentication.

Chris

1 Like

I am seeing the same behavior. Even with all available permissions selected (simulating ADMIN) Clicking the Acknowledge button results in no action.

Version: 26.7.0-dev.7+8a5a1b7de - Tue Jun 16 2026 15:36:54 GMT-0700

Here is a fix I can confirm works, would love for a dev to step in and review this:

librenms@nms:~/app/Policies$ pwd
/opt/librenms/app/Policies
librenms@nms:~/app/Policies$ diff AlertPolicy.php.orig AlertPolicy.php
55a56,58

    if ($this->hasGlobalPermission($user, 'viewAll')) {
        return true;
    }

Here is a diff -y, showing you some context, original on the left, fixed on the right:

/**                                                             /**
 * Determine whether the user can update the model.              * Determine whether the user can update the model.
 */                                                              */
public function update(User $user, Alert $alert): bool          public function update(User $user, Alert $alert): bool
{                                                               {
                                                          >         if ($this->hasGlobalPermission($user, 'viewAll')) {
                                                          >             return true;
                                                          >         }
    return $this->hasGlobalPermission($user, 'update')              return $this->hasGlobalPermission($user, 'update')
        && Permissions::canAccessDevice($alert->device_id               && Permissions::canAccessDevice($alert->device_id
}                                                               }

Then:

php /opt/librenms/artisan cache:clear