MishkaGervaz.Table.Web.State.Access (MishkaGervaz v0.0.1-alpha.3)

Copy Markdown View Source

Handles access control for records and actions.

Overridable Functions

  • master_user?/1 - Check if user is a master user
  • can_modify_record?/2 - Check if user can modify a record
  • record_visible?/3 - Check if record is visible to user
  • get_action/3 - Get appropriate Ash action for context
  • get_preloads/2 - Get all preloads needed

User Override

defmodule MyApp.Table.Access do
  use MishkaGervaz.Table.Web.State.Access

  def master_user?(%{role: :admin}), do: true
  def master_user?(user), do: super(user)
end

See MishkaGervaz.Table.Web.State, MishkaGervaz.Table.Web.State.Helpers, MishkaGervaz.Helpers (for master_user?/1 and user_tenant/1), and the sibling builders ColumnBuilder, FilterBuilder, ActionBuilder, Presentation, UrlSync.