Skip to content

Commit 2d4ec01

Browse files
authored
Relax user role for device event channel (#2279)
The device event channel is read only and simply forwards events, no need for it to map to a manage role.
1 parent 905de22 commit 2d4ec01

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed

lib/nerves_hub_web/channels/device_events_stream_channel.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ defmodule NervesHubWeb.DeviceEventsStreamChannel do
4848
false
4949

5050
org_user ->
51-
Authorization.authorized?(:"device:console", org_user)
51+
Authorization.authorized?(:"device:view", org_user)
5252
end
5353
end
5454
end

lib/nerves_hub_web/helpers/authorization.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ defmodule NervesHubWeb.Helpers.Authorization do
3030

3131
def authorized?(:"device:create", %OrgUser{role: role}), do: role_check(:manage, role)
3232
def authorized?(:"device:update", %OrgUser{role: role}), do: role_check(:manage, role)
33+
def authorized?(:"device:view", %OrgUser{role: role}), do: role_check(:view, role)
3334

3435
def authorized?(:"device:set-deployment-group", %OrgUser{role: role}),
3536
do: role_check(:manage, role)

test/nerves_hub_web/channels/device_events_stream_channel_test.exs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,11 @@ defmodule NervesHubWeb.DeviceEventsStreamChannelTest do
6767

6868
defp device_fixture(user, device_params) do
6969
org = Fixtures.org_fixture(user)
70+
{:ok, org_user} = Accounts.get_org_user(org, user)
71+
72+
# Use the lowest permissioned org user possible for the channel.
73+
{:ok, _updated_org_user} = Accounts.change_org_user_role(org_user, :view)
74+
7075
product = Fixtures.product_fixture(user, org)
7176
org_key = Fixtures.org_key_fixture(org, user)
7277

0 commit comments

Comments
 (0)