feat: prevent join requests with equal mail
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
40a4461d23
commit
086ecdcb1b
22 changed files with 534 additions and 11 deletions
|
|
@ -21,9 +21,24 @@ defmodule MvWeb.JoinRequestLive.Helpers do
|
|||
@doc """
|
||||
Returns the reviewer display string (e.g. email) for a join request, or nil if none.
|
||||
|
||||
Accepts a join request struct or map with optional :reviewed_by_user (loaded User struct).
|
||||
Prefers the denormalized :reviewed_by_display (set on approve/reject) so the UI
|
||||
works for all roles without loading the User resource. Falls back to
|
||||
:reviewed_by_user when loaded (e.g. admin or legacy data before backfill).
|
||||
"""
|
||||
def reviewer_display(req) when is_map(req) do
|
||||
case Map.get(req, :reviewed_by_display) do
|
||||
s when is_binary(s) ->
|
||||
trimmed = String.trim(s)
|
||||
if trimmed == "", do: reviewer_display_from_user(req), else: trimmed
|
||||
|
||||
_ ->
|
||||
reviewer_display_from_user(req)
|
||||
end
|
||||
end
|
||||
|
||||
def reviewer_display(_), do: nil
|
||||
|
||||
defp reviewer_display_from_user(req) do
|
||||
user = Map.get(req, :reviewed_by_user)
|
||||
|
||||
case user do
|
||||
|
|
@ -42,6 +57,4 @@ defmodule MvWeb.JoinRequestLive.Helpers do
|
|||
nil
|
||||
end
|
||||
end
|
||||
|
||||
def reviewer_display(_), do: nil
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue