X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fuser%2Finfo.ex;h=2f419a5a26066a73072bbffa6dacca7e9cda58b7;hb=74e109373238c3c915bdf23b364aedd0ca0f6970;hp=f75984038d008aca0ada0ffc969ad2a8ce80fdbc;hpb=a05cb10a95901ff0daacfc17a7709f3a277f1cd4;p=akkoma diff --git a/lib/pleroma/user/info.ex b/lib/pleroma/user/info.ex index f75984038..2f419a5a2 100644 --- a/lib/pleroma/user/info.ex +++ b/lib/pleroma/user/info.ex @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.User.Info do use Ecto.Schema import Ecto.Changeset @@ -37,6 +41,8 @@ defmodule Pleroma.User.Info do # subject _> Where is this used? end + def superuser?(info), do: info.is_admin || info.is_moderator + def set_activation_status(info, deactivated) do params = %{deactivated: deactivated} @@ -143,7 +149,21 @@ defmodule Pleroma.User.Info do ]) end - def confirmation_update(info, params) do + def confirmation_changeset(info, :confirmed) do + confirmation_changeset(info, %{ + confirmation_pending: false, + confirmation_token: nil + }) + end + + def confirmation_changeset(info, :unconfirmed) do + confirmation_changeset(info, %{ + confirmation_pending: true, + confirmation_token: :crypto.strong_rand_bytes(32) |> Base.url_encode64() + }) + end + + def confirmation_changeset(info, params) do cast(info, params, [:confirmation_pending, :confirmation_token]) end