Packages
blossom
0.21.3
0.29.3
0.29.2
0.29.1
0.29.0
0.28.0
0.27.3
0.27.2
0.27.1
0.27.0
0.26.3
0.26.2
0.26.1
0.26.0
0.25.3
0.25.2
0.25.1
0.25.0
0.24.1
0.24.0
0.23.5
0.23.4
0.23.3
0.23.2
0.23.1
0.23.0
0.22.1
0.22.0
0.21.8
0.21.7
0.21.6
0.21.5
0.21.4
0.21.3
0.21.2
0.21.1
0.21.0
0.20.4
0.20.3
0.20.2
0.20.1
0.20.0
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.17.4
0.17.3
0.17.2
0.17.1
0.17.0
0.16.0
0.15.2
0.15.1
0.15.0
0.14.0
0.13.0
0.12.2
0.12.1
0.12.0
0.11.0
0.10.1
0.10.0
0.9.2
0.9.1
0.9.0
0.8.0
0.7.0
0.6.2
0.6.1
0.6.0
0.5.1
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
Easy identity for easy authentication
Current section
Files
Jump to
Current section
Files
lib/blossom/models/settings.ex
defmodule Blossom.Models.Settings do
alias Blossom.Models.Settings
alias KilnCore.Builders.Model, as: Builder
alias KilnCore.Utils, as: KilnCoreUtils
def new(params, user, ctx, protected_fields) do
if user == :system do
ctx[:schema].new(params)
else
if ctx[:org_roles].is_root_admin?(user) do
params
|> Builder.handle_params(protected_fields, user)
|> ctx[:schema].new()
else
{:error, :forbidden}
end
end
end
def get(params, user, ctx) do
if user == :system do
ctx[:schema].get(params)
else
if ctx[:org_roles].is_root_admin?(user) do
ctx[:schema].get(params)
else
{:error, :forbidden}
end
end
end
def get_count(params, user, ctx) do
if user == :system do
ctx[:schema].get_count(params)
else
if ctx[:org_roles].is_root_admin?(user) do
ctx[:schema].get_count(params)
else
{:error, :forbidden}
end
end
end
def show(id, user, ctx) do
if user == :system do
ctx[:schema].show(id)
else
if ctx[:org_roles].is_root_admin?(user) do
ctx[:schema].show(id)
else
{:error, :forbidden}
end
end
end
def edit(params, id, user, ctx, protected_fields) do
if user == :system do
ctx[:schema].edit(params, id)
else
if ctx[:org_roles].is_root_admin?(user) do
params
|> Builder.handle_params(protected_fields, user)
|> Map.delete("id")
|> ctx[:schema].edit(id)
else
{:error, :forbidden}
end
end
end
def delete(id, user, ctx) do
if user == :system do
ctx[:schema].delete(id)
else
if ctx[:org_roles].is_root_admin?(user) do
ctx[:schema].delete(id)
else
{:error, :forbidden}
end
end
end
defmacro __using__(opts \\ []) do
quote do
use KilnCore.Model,
protected_fields: Keyword.get(unquote(opts), :protected_fields, []),
schema: unquote(Keyword.get(opts, :schema))
@org_roles KilnCoreUtils.option_or_mod_replace(
@caller,
unquote(opts),
:organizations_roles,
OrganizationsRoles,
2
)
@ctx [
org_roles: @org_roles,
schema: @schema
]
def new(params, user) do
Settings.new(params, user, @ctx, @protected_fields)
end
def get(params, user) do
Settings.get(params, user, @ctx)
end
def get_count(params, user) do
Settings.get_count(params, user, @ctx)
end
def show(id, user) do
Settings.show(id, user, @ctx)
end
def edit(params, id, user) do
Settings.edit(params, id, user, @ctx, @protected_fields)
end
def delete(id, user) do
Settings.delete(id, user, @ctx)
end
end
end
end