diff --git a/README.md b/README.md index 59d723d..2ac7892 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Casbin-Ex [![GitHub Actions](https://github.com/casbin/casbin-ex/actions/workflows/ci.yml/badge.svg)](https://github.com/casbin/casbin-ex/actions/workflows/ci.yml) -[![Hex.pm](https://img.shields.io/hexpm/v/acx.svg)](https://hex.pm/packages/acx) +[![Hex.pm](https://img.shields.io/hexpm/v/casbin.svg)](https://hex.pm/packages/casbin) [![Release](https://img.shields.io/github/release/casbin/casbin-ex.svg)](https://github.com/casbin/casbin-ex/releases/latest) [![Discord](https://img.shields.io/discord/1022748306096537660?logo=discord&label=discord&color=5865F2)](https://discord.gg/S5UjpzGZjN) @@ -27,12 +27,12 @@ https://casbin.org/docs/overview ## Installation -The package can be installed by adding `acx` to your list of dependencies in `mix.exs`: +The package can be installed by adding `casbin` to your list of dependencies in `mix.exs`: ```elixir def deps do [ - {:acx, "~> 1.6"} + {:casbin, "~> 1.6"} ] end ``` @@ -42,7 +42,7 @@ Or install from GitHub: ```elixir def deps do [ - {:acx, git: "https://github.com/casbin/casbin-ex"} + {:casbin, git: "https://github.com/casbin/casbin-ex"} ] end ``` @@ -126,7 +126,7 @@ The final step is to combine the model, the policy rules and Casbin-Ex to construct our access control system. ```elixir -alias Acx.{EnforcerSupervisor, EnforcerServer} +alias Casbin.{EnforcerSupervisor, EnforcerServer} # Give our system a name so that we can reference it by its name # rather than the process ID (a.k.a `pid`). @@ -220,7 +220,7 @@ g, admin, author Finally: ```elixir -alias Acx.{EnforcerSupervisor, EnforcerServer} +alias Casbin.{EnforcerSupervisor, EnforcerServer} ename = "blog_ac" EnforcerSupervisor.start_enforcer(ename, blog_ac.conf) @@ -281,7 +281,7 @@ p, peter, /peter_data, (GET)|(POST) Code: ```elixir -alias Acx.{EnforcerSupervisor, EnforcerServer} +alias Casbin.{EnforcerSupervisor, EnforcerServer} ename = "restful_ac" EnforcerSupervisor.start_enforcer(ename, restful_ac.conf) diff --git a/guides/sandbox_testing.md b/guides/sandbox_testing.md index b31f983..515f9d4 100644 --- a/guides/sandbox_testing.md +++ b/guides/sandbox_testing.md @@ -32,7 +32,7 @@ defmodule MyApp.RolesTest do Ecto.Adapters.SQL.Sandbox.mode(MyApp.Repo, {:shared, self()}) # Allow the EnforcerServer process to access the connection - case Registry.lookup(Acx.EnforcerRegistry, "my_enforcer") do + case Registry.lookup(Casbin.EnforcerRegistry, "my_enforcer") do [{enforcer_pid, _}] -> Ecto.Adapters.SQL.Sandbox.allow(MyApp.Repo, self(), enforcer_pid) [] -> @@ -52,7 +52,7 @@ defmodule MyApp.RolesTest do assert {:ok, :created} = MyApp.Repo.transaction(fn -> Enum.each(permissions, fn %{resource: resource, action: action} -> - case Acx.EnforcerServer.add_policy("my_enforcer", {:p, ["analyst", resource, action]}) do + case Casbin.EnforcerServer.add_policy("my_enforcer", {:p, ["analyst", resource, action]}) do :ok -> :ok {:error, reason} -> MyApp.Repo.rollback(reason) end @@ -105,7 +105,7 @@ defmodule MyApp.Authorization.RolesTest do Ecto.Adapters.SQL.Sandbox.mode(Repo, {:shared, self()}) # Allow EnforcerServer to access the connection - case Registry.lookup(Acx.EnforcerRegistry, "my_enforcer") do + case Registry.lookup(Casbin.EnforcerRegistry, "my_enforcer") do [{pid, _}] -> Ecto.Adapters.SQL.Sandbox.allow(Repo, self(), pid) [] -> :ok end @@ -126,7 +126,7 @@ defmodule MyApp.Authorization.RolesTest do # Add Casbin policies Enum.each(permissions, fn perm -> - case Acx.EnforcerServer.add_policy( + case Casbin.EnforcerServer.add_policy( "my_enforcer", {:p, ["admin", perm.resource, perm.action]} ) do @@ -144,7 +144,7 @@ defmodule MyApp.Authorization.RolesTest do test "rolls back Casbin operations on error" do result = Repo.transaction(fn -> # Add a policy - :ok = Acx.EnforcerServer.add_policy( + :ok = Casbin.EnforcerServer.add_policy( "my_enforcer", {:p, ["temp_role", "resource", "action"]} ) @@ -156,7 +156,7 @@ defmodule MyApp.Authorization.RolesTest do assert {:error, :simulated_error} = result # Verify the policy was not persisted - policies = Acx.EnforcerServer.list_policies("my_enforcer", %{sub: "temp_role"}) + policies = Casbin.EnforcerServer.list_policies("my_enforcer", %{sub: "temp_role"}) assert policies == [] end end diff --git a/lib/acx.ex b/lib/acx.ex deleted file mode 100644 index 30aeb0e..0000000 --- a/lib/acx.ex +++ /dev/null @@ -1,18 +0,0 @@ -defmodule Acx do - @moduledoc """ - Acx is an Elixir implementation of the Casbin authorization library. - """ - use Application - - def start(_type, _args) do - children = [ - {Registry, keys: :unique, name: Acx.EnforcerRegistry}, - Acx.EnforcerSupervisor - ] - - :ets.new(:enforcers_table, [:public, :named_table]) - - opts = [strategy: :one_for_one, name: Acx.Supervisor] - Supervisor.start_link(children, opts) - end -end diff --git a/lib/casbin.ex b/lib/casbin.ex new file mode 100644 index 0000000..d030b84 --- /dev/null +++ b/lib/casbin.ex @@ -0,0 +1,18 @@ +defmodule Casbin do + @moduledoc """ + Casbin is an Elixir implementation of the Casbin authorization library. + """ + use Application + + def start(_type, _args) do + children = [ + {Registry, keys: :unique, name: Casbin.EnforcerRegistry}, + Casbin.EnforcerSupervisor + ] + + :ets.new(:enforcers_table, [:public, :named_table]) + + opts = [strategy: :one_for_one, name: Casbin.Supervisor] + Supervisor.start_link(children, opts) + end +end diff --git a/lib/acx/enforcer.ex b/lib/casbin/enforcer.ex similarity index 97% rename from lib/acx/enforcer.ex rename to lib/casbin/enforcer.ex index 97fbdae..3fa1149 100644 --- a/lib/acx/enforcer.ex +++ b/lib/casbin/enforcer.ex @@ -1,4 +1,4 @@ -defmodule Acx.Enforcer do +defmodule Casbin.Enforcer do @moduledoc """ TODO """ @@ -10,10 +10,10 @@ defmodule Acx.Enforcer do env: %{}, persist_adapter: nil - alias Acx.Internal.RoleGroup - alias Acx.Model - alias Acx.Persist.PersistAdapter - alias Acx.Persist.ReadonlyFileAdapter + alias Casbin.Internal.RoleGroup + alias Casbin.Model + alias Casbin.Persist.PersistAdapter + alias Casbin.Persist.ReadonlyFileAdapter @type mapping() :: {atom(), String.t(), String.t()} @@ -189,7 +189,7 @@ defmodule Acx.Enforcer do ...> e = Enforcer.remove_filtered_policy(e, :p, 0, ["admin"]) ...> Enforcer.list_policies(e) [ - %Acx.Model.Policy{ + %Casbin.Model.Policy{ key: :p, attrs: [sub: "reader", obj: "blog_post", act: "read", eft: "allow"] } @@ -205,7 +205,7 @@ defmodule Acx.Enforcer do ...> e = Enforcer.remove_filtered_policy(e, :p, 1, ["blog_post"]) ...> Enforcer.list_policies(e) [ - %Acx.Model.Policy{ + %Casbin.Model.Policy{ key: :p, attrs: [sub: "reader", obj: "comment", act: "read", eft: "allow"] } @@ -285,35 +285,35 @@ defmodule Acx.Enforcer do ...> %Enforcer{policies: policies} = e ...> policies [ - %Acx.Model.Policy{ + %Casbin.Model.Policy{ attrs: [sub: "peter", obj: "blog_post", act: "read", eft: "allow"], key: :p }, - %Acx.Model.Policy{ + %Casbin.Model.Policy{ attrs: [sub: "peter", obj: "blog_post", act: "modify", eft: "allow"], key: :p }, - %Acx.Model.Policy{ + %Casbin.Model.Policy{ attrs: [sub: "peter", obj: "blog_post", act: "create", eft: "allow"], key: :p }, - %Acx.Model.Policy{ + %Casbin.Model.Policy{ attrs: [sub: "bob", obj: "blog_post", act: "read", eft: "allow"], key: :p }, - %Acx.Model.Policy{ + %Casbin.Model.Policy{ attrs: [sub: "alice", obj: "blog_post", act: "read", eft: "allow"], key: :p }, - %Acx.Model.Policy{ + %Casbin.Model.Policy{ attrs: [sub: "alice", obj: "blog_post", act: "modify", eft: "allow"], key: :p }, - %Acx.Model.Policy{ + %Casbin.Model.Policy{ attrs: [sub: "alice", obj: "blog_post", act: "delete", eft: "allow"], key: :p }, - %Acx.Model.Policy{ + %Casbin.Model.Policy{ attrs: [sub: "alice", obj: "blog_post", act: "create", eft: "allow"], key: :p } @@ -409,15 +409,15 @@ defmodule Acx.Enforcer do ...> e = e |> Enforcer.load_policies!(pfile) ...> e |> Enforcer.list_policies(%{sub: "peter"}) [ - %Acx.Model.Policy{ + %Casbin.Model.Policy{ attrs: [sub: "peter", obj: "blog_post", act: "read", eft: "allow"], key: :p }, - %Acx.Model.Policy{ + %Casbin.Model.Policy{ attrs: [sub: "peter", obj: "blog_post", act: "modify", eft: "allow"], key: :p }, - %Acx.Model.Policy{ + %Casbin.Model.Policy{ attrs: [sub: "peter", obj: "blog_post", act: "create", eft: "allow"], key: :p } @@ -856,7 +856,7 @@ defmodule Acx.Enforcer do end) end - @spec list_mapping_policies(Acx.Enforcer.t(), maybe_improper_list) :: [mapping()] + @spec list_mapping_policies(Casbin.Enforcer.t(), maybe_improper_list) :: [mapping()] def list_mapping_policies( %__MODULE__{mapping_policies: mapping_policies}, criteria @@ -869,7 +869,7 @@ defmodule Acx.Enforcer do end) end - @spec list_mapping_policies(Acx.Enforcer.t()) :: [mapping()] + @spec list_mapping_policies(Casbin.Enforcer.t()) :: [mapping()] def list_mapping_policies(%__MODULE__{mapping_policies: mapping_policies}), do: mapping_policies @doc """ diff --git a/lib/acx/enforcer_server.ex b/lib/casbin/enforcer_server.ex similarity index 98% rename from lib/acx/enforcer_server.ex rename to lib/casbin/enforcer_server.ex index b568ab6..3a81602 100644 --- a/lib/acx/enforcer_server.ex +++ b/lib/casbin/enforcer_server.ex @@ -1,4 +1,4 @@ -defmodule Acx.EnforcerServer do +defmodule Casbin.EnforcerServer do @moduledoc """ An enforcer process that holds an `Enforcer` struct as its state. """ @@ -7,7 +7,7 @@ defmodule Acx.EnforcerServer do require Logger - alias Acx.Enforcer + alias Casbin.Enforcer # # Client Public Interface @@ -348,12 +348,12 @@ defmodule Acx.EnforcerServer do # Returns a tuple used to register and lookup an enforcer process # by name defp via_tuple(ename) do - {:via, Registry, {Acx.EnforcerRegistry, ename}} + {:via, Registry, {Casbin.EnforcerRegistry, ename}} end # Returns the name of `self`. defp self_name do - Registry.keys(Acx.EnforcerRegistry, self()) |> List.first() + Registry.keys(Casbin.EnforcerRegistry, self()) |> List.first() end # Creates a new enforcer or lookups existing one in the ets table. diff --git a/lib/acx/enforcer_supervisor.ex b/lib/casbin/enforcer_supervisor.ex similarity index 78% rename from lib/acx/enforcer_supervisor.ex rename to lib/casbin/enforcer_supervisor.ex index 6676c80..2670452 100644 --- a/lib/acx/enforcer_supervisor.ex +++ b/lib/casbin/enforcer_supervisor.ex @@ -1,4 +1,4 @@ -defmodule Acx.EnforcerSupervisor do +defmodule Casbin.EnforcerSupervisor do @moduledoc """ A supervisor that starts `Enforcer` processes dynamically. """ @@ -18,8 +18,8 @@ defmodule Acx.EnforcerSupervisor do """ def start_enforcer(ename, cfile) do child_spec = %{ - id: Acx.EnforcerServer, - start: {Acx.EnforcerServer, :start_link, [ename, cfile]}, + id: Casbin.EnforcerServer, + start: {Casbin.EnforcerServer, :start_link, [ename, cfile]}, restart: :permanent } diff --git a/lib/acx/internal/digraph.ex b/lib/casbin/internal/digraph.ex similarity index 99% rename from lib/acx/internal/digraph.ex rename to lib/casbin/internal/digraph.ex index 51de199..0ca4220 100644 --- a/lib/acx/internal/digraph.ex +++ b/lib/casbin/internal/digraph.ex @@ -1,4 +1,4 @@ -defmodule Acx.Internal.Digraph do +defmodule Casbin.Internal.Digraph do @moduledoc """ This module defines a simple directed graph structure to model the role inheritance in the (H)RBAC ( Hierarchical Role Based Access Control) diff --git a/lib/acx/internal/helpers.ex b/lib/casbin/internal/helpers.ex similarity index 96% rename from lib/acx/internal/helpers.ex rename to lib/casbin/internal/helpers.ex index 64b7515..f4212f1 100644 --- a/lib/acx/internal/helpers.ex +++ b/lib/casbin/internal/helpers.ex @@ -1,6 +1,6 @@ -defmodule Acx.Internal.Helpers do +defmodule Casbin.Internal.Helpers do @moduledoc """ - Helper functions used internally by Acx. + Helper functions used internally by Casbin. """ @doc """ Returns a tuple `{succeeds, remainder, count}` where `succeeds` is diff --git a/lib/acx/internal/operator.ex b/lib/casbin/internal/operator.ex similarity index 99% rename from lib/acx/internal/operator.ex rename to lib/casbin/internal/operator.ex index 440f910..5403bab 100644 --- a/lib/acx/internal/operator.ex +++ b/lib/casbin/internal/operator.ex @@ -1,4 +1,4 @@ -defmodule Acx.Internal.Operator do +defmodule Casbin.Internal.Operator do @moduledoc """ This module defines a set of operators and helper functions used when parsing operators in a matcher expression. diff --git a/lib/acx/internal/parser.ex b/lib/casbin/internal/parser.ex similarity index 99% rename from lib/acx/internal/parser.ex rename to lib/casbin/internal/parser.ex index 0013559..c31f754 100644 --- a/lib/acx/internal/parser.ex +++ b/lib/casbin/internal/parser.ex @@ -1,4 +1,4 @@ -defmodule Acx.Internal.Parser do +defmodule Casbin.Internal.Parser do @moduledoc """ `Parser` is responsible for converting a string representing a boolean expression: @@ -19,7 +19,7 @@ defmodule Acx.Internal.Parser do and logical operators: `&&(and), ||(or), !(not)`. """ - alias Acx.Internal.{Helpers, Operator} + alias Casbin.Internal.{Helpers, Operator} @operators [ ~c".", diff --git a/lib/acx/internal/partial_range.ex b/lib/casbin/internal/partial_range.ex similarity index 99% rename from lib/acx/internal/partial_range.ex rename to lib/casbin/internal/partial_range.ex index a9cf756..9f75131 100644 --- a/lib/acx/internal/partial_range.ex +++ b/lib/casbin/internal/partial_range.ex @@ -1,4 +1,4 @@ -defmodule Acx.Internal.PartialRange do +defmodule Casbin.Internal.PartialRange do @moduledoc """ PartialRange represents one of the following mathematical objects: diff --git a/lib/acx/internal/role_group.ex b/lib/casbin/internal/role_group.ex similarity index 98% rename from lib/acx/internal/role_group.ex rename to lib/casbin/internal/role_group.ex index 02841e4..f058812 100644 --- a/lib/acx/internal/role_group.ex +++ b/lib/casbin/internal/role_group.ex @@ -1,4 +1,4 @@ -defmodule Acx.Internal.RoleGroup do +defmodule Casbin.Internal.RoleGroup do @moduledoc """ This module defines a structure to manage the roles and their inheritances in the (H)RBAC model. @@ -10,7 +10,7 @@ defmodule Acx.Internal.RoleGroup do defstruct name: nil, role_graph: nil - alias Acx.Internal.Digraph + alias Casbin.Internal.Digraph @type role_type() :: term() diff --git a/lib/acx/model.ex b/lib/casbin/model.ex similarity index 99% rename from lib/acx/model.ex rename to lib/casbin/model.ex index 815b465..935830f 100644 --- a/lib/acx/model.ex +++ b/lib/casbin/model.ex @@ -1,4 +1,4 @@ -defmodule Acx.Model do +defmodule Casbin.Model do @moduledoc """ This module defines the structure to represent a PERM (Policy, Effect, Request, Matchers) meta model. See [1] for more information. @@ -14,7 +14,7 @@ defmodule Acx.Model do effect: nil, role_mappings: [] - alias Acx.Model.{ + alias Casbin.Model.{ Config, Matcher, Policy, diff --git a/lib/acx/model/config.ex b/lib/casbin/model/config.ex similarity index 99% rename from lib/acx/model/config.ex rename to lib/casbin/model/config.ex index 5d2b66d..2d516db 100644 --- a/lib/acx/model/config.ex +++ b/lib/casbin/model/config.ex @@ -1,4 +1,4 @@ -defmodule Acx.Model.Config do +defmodule Casbin.Model.Config do @moduledoc """ A configuration file is a text files divided into named sections (optional). Brackets enclose each section name. diff --git a/lib/acx/model/matcher.ex b/lib/casbin/model/matcher.ex similarity index 99% rename from lib/acx/model/matcher.ex rename to lib/casbin/model/matcher.ex index 2ff31c2..f2a68ab 100644 --- a/lib/acx/model/matcher.ex +++ b/lib/casbin/model/matcher.ex @@ -1,4 +1,4 @@ -defmodule Acx.Model.Matcher do +defmodule Casbin.Model.Matcher do @moduledoc """ This module defines a structure to represent a matcher expression. """ @@ -33,7 +33,7 @@ defmodule Acx.Model.Matcher do prog: program() } - alias Acx.Internal.{Helpers, Operator, Parser} + alias Casbin.Internal.{Helpers, Operator, Parser} @unary_operators [:not, :pos, :neg] @binary_operators [:mul, :div, :add, :sub, :lt, :le, :gt, :ge, :eq, :ne, :and, :or] diff --git a/lib/acx/model/policy.ex b/lib/casbin/model/policy.ex similarity index 96% rename from lib/acx/model/policy.ex rename to lib/casbin/model/policy.ex index bd7c56e..e002cf3 100644 --- a/lib/acx/model/policy.ex +++ b/lib/casbin/model/policy.ex @@ -1,4 +1,4 @@ -defmodule Acx.Model.Policy do +defmodule Casbin.Model.Policy do @moduledoc """ This module defines a structure to represent a policy. A policy has two parts: diff --git a/lib/acx/model/policy_definition.ex b/lib/casbin/model/policy_definition.ex similarity index 98% rename from lib/acx/model/policy_definition.ex rename to lib/casbin/model/policy_definition.ex index 7c1fe11..555b1ff 100644 --- a/lib/acx/model/policy_definition.ex +++ b/lib/casbin/model/policy_definition.ex @@ -1,4 +1,4 @@ -defmodule Acx.Model.PolicyDefinition do +defmodule Casbin.Model.PolicyDefinition do @moduledoc """ This module defines the structure to represent a policy definition in a model. A policy definition has two parts: @@ -18,7 +18,7 @@ defmodule Acx.Model.PolicyDefinition do attrs: [attr()] } - alias Acx.Model.Policy + alias Casbin.Model.Policy @doc """ Creates a new policy definition based on the given `key` and a comma diff --git a/lib/acx/model/policy_effect.ex b/lib/casbin/model/policy_effect.ex similarity index 97% rename from lib/acx/model/policy_effect.ex rename to lib/casbin/model/policy_effect.ex index c2c613a..994fca8 100644 --- a/lib/acx/model/policy_effect.ex +++ b/lib/casbin/model/policy_effect.ex @@ -1,4 +1,4 @@ -defmodule Acx.Model.PolicyEffect do +defmodule Casbin.Model.PolicyEffect do @moduledoc """ This module defines a structure to represent a policy effect in a model. Policy effect defines whether the access should be approved or denied @@ -24,7 +24,7 @@ defmodule Acx.Model.PolicyEffect do @allow_override "some(where(p.eft==allow))" @deny_override "!some(where(p.eft==deny))" - alias Acx.Model.Policy + alias Casbin.Model.Policy @doc """ Create a new policy effect based on the given `rule` string. diff --git a/lib/acx/model/request.ex b/lib/casbin/model/request.ex similarity index 95% rename from lib/acx/model/request.ex rename to lib/casbin/model/request.ex index f5391aa..49d70ce 100644 --- a/lib/acx/model/request.ex +++ b/lib/casbin/model/request.ex @@ -1,4 +1,4 @@ -defmodule Acx.Model.Request do +defmodule Casbin.Model.Request do @moduledoc """ This module defines a structure to represent a request. A request has two parts: diff --git a/lib/acx/model/request_definition.ex b/lib/casbin/model/request_definition.ex similarity index 97% rename from lib/acx/model/request_definition.ex rename to lib/casbin/model/request_definition.ex index 3299bf0..d84b8d9 100644 --- a/lib/acx/model/request_definition.ex +++ b/lib/casbin/model/request_definition.ex @@ -1,4 +1,4 @@ -defmodule Acx.Model.RequestDefinition do +defmodule Casbin.Model.RequestDefinition do @moduledoc """ This module defines a structure to represent a request definition in a model. A request definition has two parts: @@ -17,7 +17,7 @@ defmodule Acx.Model.RequestDefinition do attrs: [attr()] } - alias Acx.Model.Request + alias Casbin.Model.Request @doc """ Creates a request definition based on the given `key` and a comma diff --git a/lib/acx/persist/ecto_adapter.ex b/lib/casbin/persist/ecto_adapter.ex similarity index 89% rename from lib/acx/persist/ecto_adapter.ex rename to lib/casbin/persist/ecto_adapter.ex index 140b256..8dd99e6 100644 --- a/lib/acx/persist/ecto_adapter.ex +++ b/lib/casbin/persist/ecto_adapter.ex @@ -1,4 +1,4 @@ -defmodule Acx.Persist.EctoAdapter do +defmodule Casbin.Persist.EctoAdapter do @moduledoc """ This module defines an adapter for persisting the list of policies to a database. @@ -177,23 +177,23 @@ defmodule Acx.Persist.EctoAdapter do repo end - defimpl Acx.Persist.PersistAdapter, for: Acx.Persist.EctoAdapter do + defimpl Casbin.Persist.PersistAdapter, for: Casbin.Persist.EctoAdapter do @doc """ Queries the list of policy rules from the database and returns them as a list of strings. ## Examples - iex> PersistAdapter.load_policies(%Acx.Persist.EctoAdapter{repo: nil}) + iex> PersistAdapter.load_policies(%Casbin.Persist.EctoAdapter{repo: nil}) ...> {:error, "repo is not set"} """ @spec load_policies(EctoAdapter.t()) :: [Model.Policy.t()] - def load_policies(%Acx.Persist.EctoAdapter{repo: nil, get_dynamic_repo: nil}) do + def load_policies(%Casbin.Persist.EctoAdapter{repo: nil, get_dynamic_repo: nil}) do {:error, "repo is not set"} end def load_policies(adapter) do - repo = Acx.Persist.EctoAdapter.get_repo(adapter) + repo = Casbin.Persist.EctoAdapter.get_repo(adapter) policies = repo.all(CasbinRule) @@ -218,16 +218,16 @@ defmodule Acx.Persist.EctoAdapter do filter = %{ptype: "p", v3: ["org:tenant_1", "org:tenant_2"]} PersistAdapter.load_filtered_policy(adapter, filter) - iex> PersistAdapter.load_filtered_policy(%Acx.Persist.EctoAdapter{repo: nil}, %{}) + iex> PersistAdapter.load_filtered_policy(%Casbin.Persist.EctoAdapter{repo: nil}, %{}) ...> {:error, "repo is not set"} """ @spec load_filtered_policy(EctoAdapter.t(), map()) :: {:ok, [list()]} | {:error, String.t()} - def load_filtered_policy(%Acx.Persist.EctoAdapter{repo: nil, get_dynamic_repo: nil}, _filter) do + def load_filtered_policy(%Casbin.Persist.EctoAdapter{repo: nil, get_dynamic_repo: nil}, _filter) do {:error, "repo is not set"} end def load_filtered_policy(adapter, filter) when is_map(filter) do - repo = Acx.Persist.EctoAdapter.get_repo(adapter) + repo = Casbin.Persist.EctoAdapter.get_repo(adapter) query = build_filtered_query(filter) policies = @@ -287,16 +287,16 @@ defmodule Acx.Persist.EctoAdapter do ## Examples iex> PersistAdapter.add_policy( - ...> %Acx.Persist.EctoAdapter{}, + ...> %Casbin.Persist.EctoAdapter{}, ...> {:p, ["user", "file", "read"]}) ...> {:error, "repo is not set"} """ - def add_policy(%Acx.Persist.EctoAdapter{repo: nil, get_dynamic_repo: nil}, _) do + def add_policy(%Casbin.Persist.EctoAdapter{repo: nil, get_dynamic_repo: nil}, _) do {:error, "repo is not set"} end def add_policy(adapter, {_key, _attrs} = policy) do - repo = Acx.Persist.EctoAdapter.get_repo(adapter) + repo = Casbin.Persist.EctoAdapter.get_repo(adapter) changeset = CasbinRule.create_changeset(policy) case repo.insert(changeset) do @@ -315,16 +315,16 @@ defmodule Acx.Persist.EctoAdapter do ## Examples iex> PersistAdapter.remove_policy( - ...> %Acx.Persist.EctoAdapter{}, + ...> %Casbin.Persist.EctoAdapter{}, ...> {:p, ["user", "file", "read"]}) ...> {:error, "repo is not set"} """ - def remove_policy(%Acx.Persist.EctoAdapter{repo: nil, get_dynamic_repo: nil}, _) do + def remove_policy(%Casbin.Persist.EctoAdapter{repo: nil, get_dynamic_repo: nil}, _) do {:error, "repo is not set"} end def remove_policy(adapter, {_key, _attr} = policy) do - repo = Acx.Persist.EctoAdapter.get_repo(adapter) + repo = Casbin.Persist.EctoAdapter.get_repo(adapter) f = CasbinRule.changeset_to_queryable(policy) case repo.delete_all(f) do @@ -334,7 +334,7 @@ defmodule Acx.Persist.EctoAdapter do end def remove_filtered_policy(adapter, key, idx, attrs) do - repo = Acx.Persist.EctoAdapter.get_repo(adapter) + repo = Casbin.Persist.EctoAdapter.get_repo(adapter) f = CasbinRule.changeset_to_queryable({key, attrs}, idx) case repo.delete_all(f) do @@ -351,16 +351,16 @@ defmodule Acx.Persist.EctoAdapter do ## Examples iex> PersistAdapter.save_policies( - ...> %Acx.Persist.EctoAdapter{}, + ...> %Casbin.Persist.EctoAdapter{}, ...> []) ...> {:error, "repo is not set"} """ - def save_policies(%Acx.Persist.EctoAdapter{repo: nil, get_dynamic_repo: nil}, _) do + def save_policies(%Casbin.Persist.EctoAdapter{repo: nil, get_dynamic_repo: nil}, _) do {:error, "repo is not set"} end def save_policies(adapter, policies) do - repo = Acx.Persist.EctoAdapter.get_repo(adapter) + repo = Casbin.Persist.EctoAdapter.get_repo(adapter) repo.transaction(fn -> insert_policies(repo, adapter, policies) end) end diff --git a/lib/acx/persist/persist_adapter.ex b/lib/casbin/persist/persist_adapter.ex similarity index 84% rename from lib/acx/persist/persist_adapter.ex rename to lib/casbin/persist/persist_adapter.ex index 7af08cc..e825800 100644 --- a/lib/acx/persist/persist_adapter.ex +++ b/lib/casbin/persist/persist_adapter.ex @@ -1,4 +1,4 @@ -defprotocol Acx.Persist.PersistAdapter do +defprotocol Casbin.Persist.PersistAdapter do def load_policies(adapter) def load_filtered_policy(adapter, filter) def add_policy(adapter, policy) diff --git a/lib/acx/persist/readonly_file_adapter.ex b/lib/casbin/persist/readonly_file_adapter.ex similarity index 89% rename from lib/acx/persist/readonly_file_adapter.ex rename to lib/casbin/persist/readonly_file_adapter.ex index 4cacc6b..dadc54b 100644 --- a/lib/acx/persist/readonly_file_adapter.ex +++ b/lib/casbin/persist/readonly_file_adapter.ex @@ -1,8 +1,8 @@ -defmodule Acx.Persist.ReadonlyFileAdapter do +defmodule Casbin.Persist.ReadonlyFileAdapter do @moduledoc """ A read-only file adapter for loading policies from files. """ - alias Acx.Persist.PersistAdapter + alias Casbin.Persist.PersistAdapter defstruct policy_file: nil @@ -14,8 +14,8 @@ defmodule Acx.Persist.ReadonlyFileAdapter do %__MODULE__{policy_file: pfile} end - defimpl PersistAdapter, for: Acx.Persist.ReadonlyFileAdapter do - def load_policies(%Acx.Persist.ReadonlyFileAdapter{policy_file: nil}) do + defimpl PersistAdapter, for: Casbin.Persist.ReadonlyFileAdapter do + def load_policies(%Casbin.Persist.ReadonlyFileAdapter{policy_file: nil}) do {:ok, []} end @@ -50,7 +50,7 @@ defmodule Acx.Persist.ReadonlyFileAdapter do filter = %{ptype: "p", v3: "org:tenant_123"} PersistAdapter.load_filtered_policy(adapter, filter) """ - def load_filtered_policy(%Acx.Persist.ReadonlyFileAdapter{policy_file: nil}, _filter) do + def load_filtered_policy(%Casbin.Persist.ReadonlyFileAdapter{policy_file: nil}, _filter) do {:ok, []} end diff --git a/mix.exs b/mix.exs index b87edf0..d233b29 100644 --- a/mix.exs +++ b/mix.exs @@ -1,9 +1,9 @@ -defmodule Acx.MixProject do +defmodule Casbin.MixProject do use Mix.Project def project do [ - app: :acx, + app: :casbin, version: "1.6.1", elixir: "~> 1.13", elixirc_paths: elixirc_paths(Mix.env()), @@ -20,7 +20,7 @@ defmodule Acx.MixProject do def application do [ extra_applications: [:logger], - mod: {Acx, []} + mod: {Casbin, []} ] end @@ -44,7 +44,7 @@ defmodule Acx.MixProject do defp package() do [ - name: "acx", + name: "casbin", files: ~w(lib .formatter.exs mix.exs README.md LICENSE), licenses: ["Apache-2.0"], links: %{ diff --git a/test/enforcer/acl_model_test.exs b/test/enforcer/acl_model_test.exs index 8a8f62e..55355c2 100644 --- a/test/enforcer/acl_model_test.exs +++ b/test/enforcer/acl_model_test.exs @@ -1,7 +1,7 @@ -defmodule Acx.Enforcer.AclModelTest do +defmodule Casbin.Enforcer.AclModelTest do use ExUnit.Case, async: true - alias Acx.Enforcer - alias Acx.Model.Policy + alias Casbin.Enforcer + alias Casbin.Model.Policy @cfile "../data/acl.conf" |> Path.expand(__DIR__) @pfile "../data/acl.csv" |> Path.expand(__DIR__) diff --git a/test/enforcer/acl_restful_model_test.exs b/test/enforcer/acl_restful_model_test.exs index c78b518..7d18a1b 100644 --- a/test/enforcer/acl_restful_model_test.exs +++ b/test/enforcer/acl_restful_model_test.exs @@ -1,6 +1,6 @@ -defmodule Acx.Enforcer.AclRestfulModelTest do +defmodule Casbin.Enforcer.AclRestfulModelTest do use ExUnit.Case, async: true - alias Acx.Enforcer + alias Casbin.Enforcer @cfile "../data/acl_restful.conf" |> Path.expand(__DIR__) @pfile "../data/acl_restful.csv" |> Path.expand(__DIR__) diff --git a/test/enforcer/g3_with_domain_test.exs b/test/enforcer/g3_with_domain_test.exs index 4db6f28..288cf1f 100644 --- a/test/enforcer/g3_with_domain_test.exs +++ b/test/enforcer/g3_with_domain_test.exs @@ -1,6 +1,6 @@ -defmodule Acx.Enforcer.G3WithDomain do +defmodule Casbin.Enforcer.G3WithDomain do use ExUnit.Case, async: true - alias Acx.Enforcer + alias Casbin.Enforcer @cfile "../data/g3_with_domain.conf" |> Path.expand(__DIR__) @pfile "../data/g3_with_domain.csv" |> Path.expand(__DIR__) diff --git a/test/enforcer/keymatch2_test.exs b/test/enforcer/keymatch2_test.exs index ac6bd2c..93595da 100644 --- a/test/enforcer/keymatch2_test.exs +++ b/test/enforcer/keymatch2_test.exs @@ -1,6 +1,6 @@ -defmodule Acx.Enforcer.KeyMatch2Test do +defmodule Casbin.Enforcer.KeyMatch2Test do use ExUnit.Case, async: true - alias Acx.Enforcer + alias Casbin.Enforcer @cfile "../data/keymatch2.conf" |> Path.expand(__DIR__) @pfile "../data/keymatch2.csv" |> Path.expand(__DIR__) diff --git a/test/enforcer/rbac_domain_model_test.exs b/test/enforcer/rbac_domain_model_test.exs index 859ea1f..86e8143 100644 --- a/test/enforcer/rbac_domain_model_test.exs +++ b/test/enforcer/rbac_domain_model_test.exs @@ -1,6 +1,6 @@ -defmodule Acx.Enforcer.RbacDomainModelTest do +defmodule Casbin.Enforcer.RbacDomainModelTest do use ExUnit.Case, async: true - alias Acx.Enforcer + alias Casbin.Enforcer @cfile "../data/rbac_domain.conf" |> Path.expand(__DIR__) @pfile "../data/rbac_domain.csv" |> Path.expand(__DIR__) diff --git a/test/enforcer/rbac_model_test.exs b/test/enforcer/rbac_model_test.exs index b1fcbad..2d4bf72 100644 --- a/test/enforcer/rbac_model_test.exs +++ b/test/enforcer/rbac_model_test.exs @@ -1,6 +1,6 @@ -defmodule Acx.Enforcer.RbacModelTest do +defmodule Casbin.Enforcer.RbacModelTest do use ExUnit.Case, async: true - alias Acx.Enforcer + alias Casbin.Enforcer @cfile "../data/rbac.conf" |> Path.expand(__DIR__) @pfile "../data/rbac.csv" |> Path.expand(__DIR__) diff --git a/test/enforcer_test.exs b/test/enforcer_test.exs index 0b0361d..b323d75 100644 --- a/test/enforcer_test.exs +++ b/test/enforcer_test.exs @@ -1,5 +1,5 @@ -defmodule Acx.EnforcerTest do +defmodule Casbin.EnforcerTest do use ExUnit.Case, async: true - alias Acx.Enforcer - doctest Acx.Enforcer + alias Casbin.Enforcer + doctest Casbin.Enforcer end diff --git a/test/internal/digraph_test.exs b/test/internal/digraph_test.exs index 008298e..4c4967a 100644 --- a/test/internal/digraph_test.exs +++ b/test/internal/digraph_test.exs @@ -1,5 +1,5 @@ -defmodule Acx.Internal.DigraphTest do +defmodule Casbin.Internal.DigraphTest do use ExUnit.Case, async: true - alias Acx.Internal.Digraph - doctest Acx.Internal.Digraph + alias Casbin.Internal.Digraph + doctest Casbin.Internal.Digraph end diff --git a/test/internal/helpers_test.exs b/test/internal/helpers_test.exs index b45d2e8..f8cadbc 100644 --- a/test/internal/helpers_test.exs +++ b/test/internal/helpers_test.exs @@ -1,5 +1,5 @@ -defmodule Acx.Internal.HelpersTest do +defmodule Casbin.Internal.HelpersTest do use ExUnit.Case, async: true - alias Acx.Internal.Helpers - doctest Acx.Internal.Helpers + alias Casbin.Internal.Helpers + doctest Casbin.Internal.Helpers end diff --git a/test/internal/parser_test.exs b/test/internal/parser_test.exs index 018df29..eb92c04 100644 --- a/test/internal/parser_test.exs +++ b/test/internal/parser_test.exs @@ -1,7 +1,7 @@ -defmodule Acx.Internal.ParserTest do +defmodule Casbin.Internal.ParserTest do use ExUnit.Case, async: true - alias Acx.Internal.Parser - doctest Acx.Internal.Parser + alias Casbin.Internal.Parser + doctest Casbin.Internal.Parser describe "parse/1 for number" do @test_success_cases [ diff --git a/test/internal/partial_range_test.exs b/test/internal/partial_range_test.exs index f51dce4..9bc281b 100644 --- a/test/internal/partial_range_test.exs +++ b/test/internal/partial_range_test.exs @@ -1,5 +1,5 @@ -defmodule Acx.Internal.PartialRangeTest do +defmodule Casbin.Internal.PartialRangeTest do use ExUnit.Case, async: true - alias Acx.Internal.PartialRange - doctest Acx.Internal.PartialRange + alias Casbin.Internal.PartialRange + doctest Casbin.Internal.PartialRange end diff --git a/test/internal/role_group_test.exs b/test/internal/role_group_test.exs index 13338a5..e3536d2 100644 --- a/test/internal/role_group_test.exs +++ b/test/internal/role_group_test.exs @@ -1,5 +1,5 @@ -defmodule Acx.Internal.RoleGroupTest do +defmodule Casbin.Internal.RoleGroupTest do use ExUnit.Case, async: true - alias Acx.Internal.RoleGroup - doctest Acx.Internal.RoleGroup + alias Casbin.Internal.RoleGroup + doctest Casbin.Internal.RoleGroup end diff --git a/test/model/config_test.exs b/test/model/config_test.exs index 6b50d19..41a0353 100644 --- a/test/model/config_test.exs +++ b/test/model/config_test.exs @@ -1,7 +1,7 @@ -defmodule Acx.Model.ConfigTest do +defmodule Casbin.Model.ConfigTest do use ExUnit.Case, async: true - alias Acx.Model.Config - doctest Acx.Model.Config + alias Casbin.Model.Config + doctest Casbin.Model.Config describe "new/1" do test "returns the correct key-value pairs under :undefined_section" do diff --git a/test/model/matcher_test.exs b/test/model/matcher_test.exs index 7ed934e..c0c4057 100644 --- a/test/model/matcher_test.exs +++ b/test/model/matcher_test.exs @@ -1,5 +1,5 @@ -defmodule Acx.Model.MatcherTest do +defmodule Casbin.Model.MatcherTest do use ExUnit.Case, async: true - alias Acx.Model.Matcher - doctest Acx.Model.Matcher + alias Casbin.Model.Matcher + doctest Casbin.Model.Matcher end diff --git a/test/model/policy_definition_test.exs b/test/model/policy_definition_test.exs index 7e97099..eae44fd 100644 --- a/test/model/policy_definition_test.exs +++ b/test/model/policy_definition_test.exs @@ -1,5 +1,5 @@ -defmodule Acx.Model.PolicyDefinitionTest do +defmodule Casbin.Model.PolicyDefinitionTest do use ExUnit.Case, async: true - alias Acx.Model.{Policy, PolicyDefinition} - doctest Acx.Model.PolicyDefinition + alias Casbin.Model.{Policy, PolicyDefinition} + doctest Casbin.Model.PolicyDefinition end diff --git a/test/model/policy_effect_test.exs b/test/model/policy_effect_test.exs index 790061d..e12184a 100644 --- a/test/model/policy_effect_test.exs +++ b/test/model/policy_effect_test.exs @@ -1,5 +1,5 @@ -defmodule Acx.Model.PolicyEffectTest do +defmodule Casbin.Model.PolicyEffectTest do use ExUnit.Case, async: true - alias Acx.Model.{PolicyDefinition, PolicyEffect} - doctest Acx.Model.PolicyEffect + alias Casbin.Model.{PolicyDefinition, PolicyEffect} + doctest Casbin.Model.PolicyEffect end diff --git a/test/model/request_definition_test.exs b/test/model/request_definition_test.exs index 2ada2a5..58aa974 100644 --- a/test/model/request_definition_test.exs +++ b/test/model/request_definition_test.exs @@ -1,5 +1,5 @@ -defmodule Acx.Model.RequestDefinitionTest do +defmodule Casbin.Model.RequestDefinitionTest do use ExUnit.Case, async: true - alias Acx.Model.{Request, RequestDefinition} - doctest Acx.Model.RequestDefinition + alias Casbin.Model.{Request, RequestDefinition} + doctest Casbin.Model.RequestDefinition end diff --git a/test/model_test.exs b/test/model_test.exs index b23e4b4..f547ff1 100644 --- a/test/model_test.exs +++ b/test/model_test.exs @@ -1,8 +1,8 @@ -defmodule Acx.ModelTest do +defmodule Casbin.ModelTest do use ExUnit.Case, async: true - alias Acx.Model + alias Casbin.Model - alias Acx.Model.{ + alias Casbin.Model.{ Matcher, Policy, PolicyDefinition, @@ -11,5 +11,5 @@ defmodule Acx.ModelTest do RequestDefinition } - doctest Acx.Model + doctest Casbin.Model end diff --git a/test/persist/ecto_acl_test.exs b/test/persist/ecto_acl_test.exs index ec52a96..33f5bef 100644 --- a/test/persist/ecto_acl_test.exs +++ b/test/persist/ecto_acl_test.exs @@ -1,10 +1,10 @@ -defmodule Acx.Persist.EctoAclTest do +defmodule Casbin.Persist.EctoAclTest do use ExUnit.Case, async: true - alias Acx.Enforcer - alias Acx.Persist.EctoAdapter + alias Casbin.Enforcer + alias Casbin.Persist.EctoAdapter defmodule MockAclRepo do - use Acx.Persist.MockRepo, pfile: "../data/acl.csv" |> Path.expand(__DIR__) + use Casbin.Persist.MockRepo, pfile: "../data/acl.csv" |> Path.expand(__DIR__) end @cfile "../data/acl.conf" |> Path.expand(__DIR__) diff --git a/test/persist/ecto_adapter_test.exs b/test/persist/ecto_adapter_test.exs index ce81b76..4e81d7a 100644 --- a/test/persist/ecto_adapter_test.exs +++ b/test/persist/ecto_adapter_test.exs @@ -1,14 +1,13 @@ -defmodule Acx.Persist.EctoAdapterTest do +defmodule Casbin.Persist.EctoAdapterTest do use ExUnit.Case, async: true - alias Acx.Persist.EctoAdapter - alias Acx.Persist.EctoAdapter.CasbinRule - alias Acx.Persist.PersistAdapter - doctest Acx.Persist.EctoAdapter - doctest Acx.Persist.PersistAdapter.Acx.Persist.EctoAdapter - doctest Acx.Persist.EctoAdapter.CasbinRule + alias Casbin.Persist.EctoAdapter + alias Casbin.Persist.EctoAdapter.CasbinRule + alias Casbin.Persist.PersistAdapter + doctest Casbin.Persist.EctoAdapter + doctest Casbin.Persist.EctoAdapter.CasbinRule defmodule MockTestRepo do - use Acx.Persist.MockRepo, pfile: "../data/acl.csv" |> Path.expand(__DIR__) + use Casbin.Persist.MockRepo, pfile: "../data/acl.csv" |> Path.expand(__DIR__) end describe "using the mock repo" do diff --git a/test/persist/ecto_rbac_domain_test.exs b/test/persist/ecto_rbac_domain_test.exs index 7d97652..b243611 100644 --- a/test/persist/ecto_rbac_domain_test.exs +++ b/test/persist/ecto_rbac_domain_test.exs @@ -1,12 +1,12 @@ -defmodule Acx.Persist.EctoRbacDomainTest do +defmodule Casbin.Persist.EctoRbacDomainTest do use ExUnit.Case, async: true - alias Acx.Enforcer - alias Acx.Persist.EctoAdapter + alias Casbin.Enforcer + alias Casbin.Persist.EctoAdapter @cfile "../data/rbac_domain.conf" |> Path.expand(__DIR__) defmodule MockAclRepo do - use Acx.Persist.MockRepo, pfile: "../data/rbac_domain.csv" |> Path.expand(__DIR__) + use Casbin.Persist.MockRepo, pfile: "../data/rbac_domain.csv" |> Path.expand(__DIR__) end @repo MockAclRepo diff --git a/test/persist/ecto_rbac_test.exs b/test/persist/ecto_rbac_test.exs index c824c57..c0adefa 100644 --- a/test/persist/ecto_rbac_test.exs +++ b/test/persist/ecto_rbac_test.exs @@ -1,12 +1,12 @@ -defmodule Acx.Persist.EctoRbacTest do +defmodule Casbin.Persist.EctoRbacTest do use ExUnit.Case, async: true - alias Acx.Enforcer - alias Acx.Persist.EctoAdapter + alias Casbin.Enforcer + alias Casbin.Persist.EctoAdapter @cfile "../data/rbac.conf" |> Path.expand(__DIR__) defmodule MockAclRepo do - use Acx.Persist.MockRepo, pfile: "../data/rbac.csv" |> Path.expand(__DIR__) + use Casbin.Persist.MockRepo, pfile: "../data/rbac.csv" |> Path.expand(__DIR__) end @repo MockAclRepo diff --git a/test/persist/ecto_sandbox_transaction_test.exs b/test/persist/ecto_sandbox_transaction_test.exs index 01112a0..99441f1 100644 --- a/test/persist/ecto_sandbox_transaction_test.exs +++ b/test/persist/ecto_sandbox_transaction_test.exs @@ -1,4 +1,4 @@ -defmodule Acx.Persist.EctoSandboxTransactionTest do +defmodule Casbin.Persist.EctoSandboxTransactionTest do @moduledoc """ This test module demonstrates how to use Casbin with Ecto.Adapters.SQL.Sandbox when wrapping operations in transactions. @@ -10,9 +10,9 @@ defmodule Acx.Persist.EctoSandboxTransactionTest do @moduletag :skip - alias Acx.Enforcer - alias Acx.EnforcerServer - alias Acx.Persist.EctoAdapter + alias Casbin.Enforcer + alias Casbin.EnforcerServer + alias Casbin.Persist.EctoAdapter # NOTE: Replace MyApp.Repo with your actual Repo module # @repo MyApp.Repo @@ -36,7 +36,7 @@ defmodule Acx.Persist.EctoSandboxTransactionTest do # :ok = EnforcerServer.set_persist_adapter(@enforcer_name, adapter) # Step 4: Allow the EnforcerServer to access the connection - # case Registry.lookup(Acx.EnforcerRegistry, @enforcer_name) do + # case Registry.lookup(Casbin.EnforcerRegistry, @enforcer_name) do # [{pid, _}] -> Ecto.Adapters.SQL.Sandbox.allow(@repo, self(), pid) # [] -> :ok # end diff --git a/test/persist/filtered_policy_test.exs b/test/persist/filtered_policy_test.exs index 6184268..fedec3c 100644 --- a/test/persist/filtered_policy_test.exs +++ b/test/persist/filtered_policy_test.exs @@ -1,8 +1,8 @@ -defmodule Acx.Persist.FilteredPolicyTest do +defmodule Casbin.Persist.FilteredPolicyTest do use ExUnit.Case, async: true - alias Acx.Enforcer - alias Acx.Persist.EctoAdapter - alias Acx.Persist.PersistAdapter + alias Casbin.Enforcer + alias Casbin.Persist.EctoAdapter + alias Casbin.Persist.PersistAdapter @cfile "../data/rbac_domain.conf" |> Path.expand(__DIR__) diff --git a/test/persist/readonly_file_adapter_filtered_test.exs b/test/persist/readonly_file_adapter_filtered_test.exs index 1fe7b66..e4db0d3 100644 --- a/test/persist/readonly_file_adapter_filtered_test.exs +++ b/test/persist/readonly_file_adapter_filtered_test.exs @@ -1,8 +1,8 @@ -defmodule Acx.Persist.ReadonlyFileAdapterFilteredTest do +defmodule Casbin.Persist.ReadonlyFileAdapterFilteredTest do use ExUnit.Case, async: true - alias Acx.Enforcer - alias Acx.Persist.ReadonlyFileAdapter - alias Acx.Persist.PersistAdapter + alias Casbin.Enforcer + alias Casbin.Persist.ReadonlyFileAdapter + alias Casbin.Persist.PersistAdapter @cfile "../data/rbac_domain.conf" |> Path.expand(__DIR__) @pfile "../data/rbac_domain.csv" |> Path.expand(__DIR__) diff --git a/test/persist/readonly_file_adapter_test.exs b/test/persist/readonly_file_adapter_test.exs index cdbcd21..5242c16 100644 --- a/test/persist/readonly_file_adapter_test.exs +++ b/test/persist/readonly_file_adapter_test.exs @@ -1,8 +1,8 @@ -defmodule Acx.Persist.ReadonlyFileAdapterTest do +defmodule Casbin.Persist.ReadonlyFileAdapterTest do use ExUnit.Case, async: true - alias Acx.Persist.PersistAdapter - alias Acx.Persist.ReadonlyFileAdapter - doctest Acx.Persist.ReadonlyFileAdapter + alias Casbin.Persist.PersistAdapter + alias Casbin.Persist.ReadonlyFileAdapter + doctest Casbin.Persist.ReadonlyFileAdapter describe "given a policy file" do @pfile "../data/acl.csv" |> Path.expand(__DIR__) diff --git a/test/support/mock_repo.ex b/test/support/mock_repo.ex index 5deaa7b..4746546 100644 --- a/test/support/mock_repo.ex +++ b/test/support/mock_repo.ex @@ -1,4 +1,4 @@ -defmodule Acx.Persist.MockRepo do +defmodule Casbin.Persist.MockRepo do @moduledoc """ Mock repository for testing Ecto adapter functionality. """ @@ -7,13 +7,13 @@ defmodule Acx.Persist.MockRepo do pfile = opts[:pfile] quote do - alias Acx.Persist.EctoAdapter.CasbinRule + alias Casbin.Persist.EctoAdapter.CasbinRule alias Ecto.Changeset def to_changeset(id, rule) do Enum.zip([:ptype, :v0, :v1, :v2, :v3, :v4, :v5, :v6], rule) |> Map.new() - |> then(&Map.merge(%Acx.Persist.EctoAdapter.CasbinRule{id: id}, &1)) + |> then(&Map.merge(%Casbin.Persist.EctoAdapter.CasbinRule{id: id}, &1)) end # Define function head with default parameter