Packages
blossom
0.18.1
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/controllers/organizations.ex
defmodule Blossom.Controllers.Organizations do
alias Blossom.Controllers.Organizations
alias KilnCore.Utils
def new_org_admin(outcome, user, org_roles) do
case outcome do
{:ok, organization} ->
org_roles.create_admin(user, organization.id)
{:ok, organization}
e ->
e
end
end
def new(params, user, ctx) do
if ctx[:settings].is_enabled?("allow_new_organizations") do
if ctx[:model].get(%{}, :system) == [] do
params
|> Map.put("enabled", true)
|> Map.put("root", true)
|> ctx[:model].new(:system)
|> Organizations.new_org_admin(user, ctx[:org_roles])
else
params
|> ctx[:model].new(user)
|> Organizations.new_org_admin(user, ctx[:org_roles])
end
else
{:error, :forbidden}
end
end
defmacro __using__(opts \\ []) do
quote do
use KilnCore.Controller, unquote(opts)
@org_roles Utils.option_or_mod_replace(
@caller,
unquote(opts),
:organizations_roles,
OrganizationsRoles,
2
)
@settings Utils.option_or_mod_replace(
@caller,
unquote(opts),
:settings,
Settings,
2
)
@ctx [model: @model, org_roles: @org_roles, settings: @settings]
def new(params, user, _opts) do
Organizations.new(params, user, @ctx)
end
defoverridable new: 3
end
end
end