Packages
blossom
0.23.5
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/otp_codes.ex
defmodule Blossom.Models.OtpCodes do
alias Blossom.Models.OtpCodes
alias KilnCore.Builders.Model, as: Builder
def new(params, user, ctx, protected) do
if user == :system do
ctx[:schema].new(params)
else
params
|> Map.put("user", user["sub"])
|> Builder.handle_params(protected, user)
|> ctx[:schema].new()
end
end
def delete(id, user, ctx) do
case user do
:system ->
ctx[:schema].delete(id)
_ ->
case ctx[:schema].get(%{"id" => id, "user" => user["sub"]}) do
[] -> {:error, :forbidden}
[_code] -> ctx[:schema].delete(id)
end
end
end
defmacro __using__(opts \\ []) do
quote do
use KilnCore.Model,
schema: unquote(Keyword.get(opts, :schema))
@ctx [schema: @schema]
def new(params, user) do
OtpCodes.new(params, user, @ctx, @protected_fields)
end
def delete(id, user) do
OtpCodes.delete(id, user, @ctx)
end
end
end
end