Compare commits
2
Commits
3430693dac
...
4edf526475
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4edf526475 | ||
|
|
4a28708479 |
+91
@@ -0,0 +1,91 @@
|
|||||||
|
defmodule DecentralisedBookIndexWeb.LiveViewsPermissionsForOtherServersDataTest do
|
||||||
|
use DecentralisedBookIndexWeb.LiveCase, async: true
|
||||||
|
|
||||||
|
alias DecentralisedBookIndex.TestEndpoints
|
||||||
|
@test_server_endpoint TestEndpoints.test_api_endpoint()
|
||||||
|
|
||||||
|
setup do
|
||||||
|
moderator = generate(user(role: :moderator))
|
||||||
|
admin = generate(user(role: :admin))
|
||||||
|
server = generate(dbi_server(url: @test_server_endpoint))
|
||||||
|
|
||||||
|
%{
|
||||||
|
server: server,
|
||||||
|
moderator: moderator,
|
||||||
|
admin: admin,
|
||||||
|
users: [moderator, admin]
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "Book Edit /books/:id/edit" do
|
||||||
|
setup %{server: server} do
|
||||||
|
%{book: generate(book(dbi_server_id: server.id))}
|
||||||
|
end
|
||||||
|
|
||||||
|
test "can't edit other servers' data", %{conn: conn, users: users, book: book} do
|
||||||
|
for user <- users do
|
||||||
|
redirect_url = "/books/#{book.id}"
|
||||||
|
|
||||||
|
assert {:error,
|
||||||
|
{:redirect,
|
||||||
|
%{flash: %{"error" => "Can't edit other server's data!"}, to: ^redirect_url}}} =
|
||||||
|
conn
|
||||||
|
|> log_in_user(user)
|
||||||
|
|> live("/books/#{book.id}/edit")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "Author Edit /authors/:id/edit" do
|
||||||
|
setup %{server: server} do
|
||||||
|
%{author: generate(author(dbi_server_id: server.id))}
|
||||||
|
end
|
||||||
|
|
||||||
|
test "can't edit other servers' data", %{conn: conn, users: users, author: author} do
|
||||||
|
for user <- users do
|
||||||
|
redirect_url = "/authors/#{author.id}"
|
||||||
|
|
||||||
|
assert {:error,
|
||||||
|
{:redirect,
|
||||||
|
%{flash: %{"error" => "Can't edit other server's data!"}, to: ^redirect_url}}} =
|
||||||
|
conn
|
||||||
|
|> log_in_user(user)
|
||||||
|
|> live("/authors/#{author.id}/edit")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "Publisher Edit /publishers/:id/edit" do
|
||||||
|
setup %{server: server} do
|
||||||
|
%{publisher: generate(publisher(dbi_server_id: server.id))}
|
||||||
|
end
|
||||||
|
|
||||||
|
test "can't edit other servers' data", %{conn: conn, admin: admin, publisher: publisher} do
|
||||||
|
for user <- [admin] do
|
||||||
|
redirect_url = "/publishers/#{publisher.id}"
|
||||||
|
|
||||||
|
assert {:error,
|
||||||
|
{:redirect,
|
||||||
|
%{flash: %{"error" => "Can't edit other server's data!"}, to: ^redirect_url}}} =
|
||||||
|
conn
|
||||||
|
|> log_in_user(user)
|
||||||
|
|> live("/publishers/#{publisher.id}/edit")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "Server Edit /servers/:id/edit" do
|
||||||
|
setup %{server: server} do
|
||||||
|
%{dbi_server: generate(dbi_server(dbi_server_id: server.id))}
|
||||||
|
end
|
||||||
|
|
||||||
|
test "can edit other servers' data", %{conn: conn, admin: admin, dbi_server: dbi_server} do
|
||||||
|
for user <- [admin] do
|
||||||
|
assert {:ok, _view, _html} =
|
||||||
|
conn
|
||||||
|
|> log_in_user(user)
|
||||||
|
|> live("/servers/#{dbi_server.id}/edit")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -47,11 +47,10 @@ defmodule DecentralisedBookIndexWeb.LiveViewsPermissionsTest do
|
|||||||
describe "Book Edit /books/:id/new" do
|
describe "Book Edit /books/:id/new" do
|
||||||
test "can't be accessed by regular user", %{conn: conn, user: user} do
|
test "can't be accessed by regular user", %{conn: conn, user: user} do
|
||||||
for user <- [nil, user] do
|
for user <- [nil, user] do
|
||||||
{:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}}
|
assert {:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}} =
|
||||||
|
conn
|
||||||
conn
|
|> log_in_user(user)
|
||||||
|> log_in_user(user)
|
|> live("/books/new")
|
||||||
|> live("/books/new")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -78,11 +77,10 @@ defmodule DecentralisedBookIndexWeb.LiveViewsPermissionsTest do
|
|||||||
|
|
||||||
test "can't be accessed by regular user", %{conn: conn, user: user, book: book} do
|
test "can't be accessed by regular user", %{conn: conn, user: user, book: book} do
|
||||||
for user <- [nil, user] do
|
for user <- [nil, user] do
|
||||||
{:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}}
|
assert {:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}} =
|
||||||
|
conn
|
||||||
conn
|
|> log_in_user(user)
|
||||||
|> log_in_user(user)
|
|> live("/books/#{book.id}/edit")
|
||||||
|> live("/books/#{book.id}/edit")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -136,11 +134,10 @@ defmodule DecentralisedBookIndexWeb.LiveViewsPermissionsTest do
|
|||||||
describe "Author Edit /authors/:id/new" do
|
describe "Author Edit /authors/:id/new" do
|
||||||
test "can't be accessed by regular user", %{conn: conn, user: user} do
|
test "can't be accessed by regular user", %{conn: conn, user: user} do
|
||||||
for user <- [nil, user] do
|
for user <- [nil, user] do
|
||||||
{:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}}
|
assert {:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}} =
|
||||||
|
conn
|
||||||
conn
|
|> log_in_user(user)
|
||||||
|> log_in_user(user)
|
|> live("/authors/new")
|
||||||
|> live("/authors/new")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -167,11 +164,10 @@ defmodule DecentralisedBookIndexWeb.LiveViewsPermissionsTest do
|
|||||||
|
|
||||||
test "can't be accessed by regular user", %{conn: conn, user: user, author: author} do
|
test "can't be accessed by regular user", %{conn: conn, user: user, author: author} do
|
||||||
for user <- [nil, user] do
|
for user <- [nil, user] do
|
||||||
{:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}}
|
assert {:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}} =
|
||||||
|
conn
|
||||||
conn
|
|> log_in_user(user)
|
||||||
|> log_in_user(user)
|
|> live("/authors/#{author.id}/edit")
|
||||||
|> live("/authors/#{author.id}/edit")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -225,11 +221,10 @@ defmodule DecentralisedBookIndexWeb.LiveViewsPermissionsTest do
|
|||||||
|
|
||||||
test "can't be accessed by regular user", %{conn: conn, user: user, publisher: publisher} do
|
test "can't be accessed by regular user", %{conn: conn, user: user, publisher: publisher} do
|
||||||
for user <- [nil, user] do
|
for user <- [nil, user] do
|
||||||
{:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}}
|
assert {:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}} =
|
||||||
|
conn
|
||||||
conn
|
|> log_in_user(user)
|
||||||
|> log_in_user(user)
|
|> live("/publishers/#{publisher.id}")
|
||||||
|> live("/publishers/#{publisher.id}")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -253,11 +248,10 @@ defmodule DecentralisedBookIndexWeb.LiveViewsPermissionsTest do
|
|||||||
describe "Publisher Edit /publishers/:id/new" do
|
describe "Publisher Edit /publishers/:id/new" do
|
||||||
test "can't be accessed by regular user", %{conn: conn, user: user} do
|
test "can't be accessed by regular user", %{conn: conn, user: user} do
|
||||||
for user <- [nil, user] do
|
for user <- [nil, user] do
|
||||||
{:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}}
|
{:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}} =
|
||||||
|
conn
|
||||||
conn
|
|> log_in_user(user)
|
||||||
|> log_in_user(user)
|
|> live("/publishers/new")
|
||||||
|> live("/publishers/new")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -284,11 +278,10 @@ defmodule DecentralisedBookIndexWeb.LiveViewsPermissionsTest do
|
|||||||
|
|
||||||
test "can't be accessed by regular user", %{conn: conn, user: user, publisher: publisher} do
|
test "can't be accessed by regular user", %{conn: conn, user: user, publisher: publisher} do
|
||||||
for user <- [nil, user] do
|
for user <- [nil, user] do
|
||||||
{:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}}
|
assert {:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}} =
|
||||||
|
conn
|
||||||
conn
|
|> log_in_user(user)
|
||||||
|> log_in_user(user)
|
|> live("/publishers/#{publisher.id}/edit")
|
||||||
|> live("/publishers/#{publisher.id}/edit")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -347,11 +340,10 @@ defmodule DecentralisedBookIndexWeb.LiveViewsPermissionsTest do
|
|||||||
server: server
|
server: server
|
||||||
} do
|
} do
|
||||||
for user <- [nil, user, moderator] do
|
for user <- [nil, user, moderator] do
|
||||||
{:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}}
|
assert {:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}} =
|
||||||
|
conn
|
||||||
conn
|
|> log_in_user(user)
|
||||||
|> log_in_user(user)
|
|> live("/servers/#{server.id}")
|
||||||
|> live("/servers/#{server.id}")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -370,11 +362,10 @@ defmodule DecentralisedBookIndexWeb.LiveViewsPermissionsTest do
|
|||||||
describe "Server Edit /servers/:id/new" do
|
describe "Server Edit /servers/:id/new" do
|
||||||
test "can't be accessed by non-admin user", %{conn: conn, user: user, moderator: moderator} do
|
test "can't be accessed by non-admin user", %{conn: conn, user: user, moderator: moderator} do
|
||||||
for user <- [nil, user, moderator] do
|
for user <- [nil, user, moderator] do
|
||||||
{:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}}
|
assert {:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}} =
|
||||||
|
conn
|
||||||
conn
|
|> log_in_user(user)
|
||||||
|> log_in_user(user)
|
|> live("/servers/new")
|
||||||
|> live("/servers/new")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -402,11 +393,10 @@ defmodule DecentralisedBookIndexWeb.LiveViewsPermissionsTest do
|
|||||||
server: server
|
server: server
|
||||||
} do
|
} do
|
||||||
for user <- [nil, user, moderator] do
|
for user <- [nil, user, moderator] do
|
||||||
{:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}}
|
assert {:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}} =
|
||||||
|
conn
|
||||||
conn
|
|> log_in_user(user)
|
||||||
|> log_in_user(user)
|
|> live("/servers/#{server.id}/edit")
|
||||||
|> live("/servers/#{server.id}/edit")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -470,11 +460,10 @@ defmodule DecentralisedBookIndexWeb.LiveViewsPermissionsTest do
|
|||||||
moderator: moderator
|
moderator: moderator
|
||||||
} do
|
} do
|
||||||
for user <- [nil, regular_user, moderator] do
|
for user <- [nil, regular_user, moderator] do
|
||||||
{:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}}
|
assert {:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}} =
|
||||||
|
conn
|
||||||
conn
|
|> log_in_user(user)
|
||||||
|> log_in_user(user)
|
|> live("/users/#{regular_user.id}")
|
||||||
|> live("/users/#{regular_user.id}")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -497,11 +486,10 @@ defmodule DecentralisedBookIndexWeb.LiveViewsPermissionsTest do
|
|||||||
moderator: moderator
|
moderator: moderator
|
||||||
} do
|
} do
|
||||||
for user <- [nil, regular_user, moderator] do
|
for user <- [nil, regular_user, moderator] do
|
||||||
{:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}}
|
assert {:error, {:redirect, %{flash: %{"error" => "Unauthorized!"}, to: "/"}}} =
|
||||||
|
conn
|
||||||
conn
|
|> log_in_user(user)
|
||||||
|> log_in_user(user)
|
|> live("/users/#{regular_user.id}/edit")
|
||||||
|> live("/users/#{regular_user.id}/edit")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user