diff options
author | csaurus <csaurus@mailbox.org> | 2018-05-21 20:19:37 -0400 |
---|---|---|
committer | csaurus <csaurus@mailbox.org> | 2018-05-21 20:19:37 -0400 |
commit | 4fd9df100f61dfe4731934eca86500472d866f60 (patch) | |
tree | 736ff0c55cde3890018a189edb8993ce4dead80b /lib/pleroma/web/common_api | |
parent | d0ad13c12e1410e7a11d5a5f7f5b84cad5f77732 (diff) | |
parent | b4064dfe30b792f5d6d36b72c7cd530afb1c667a (diff) | |
download | pleroma-4fd9df100f61dfe4731934eca86500472d866f60.tar.gz |
Merge branch 'develop' into feature/mstdn-direct-api
Diffstat (limited to 'lib/pleroma/web/common_api')
-rw-r--r-- | lib/pleroma/web/common_api/common_api.ex | 10 | ||||
-rw-r--r-- | lib/pleroma/web/common_api/utils.ex | 11 |
2 files changed, 21 insertions, 0 deletions
diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index 14a68929d..8845419c2 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -24,6 +24,16 @@ defmodule Pleroma.Web.CommonAPI do end end + def unrepeat(id_or_ap_id, user) do + with %Activity{} = activity <- get_by_id_or_ap_id(id_or_ap_id), + object <- Object.get_by_ap_id(activity.data["object"]["id"]) do + ActivityPub.unannounce(user, object) + else + _ -> + {:error, "Could not unrepeat"} + end + end + def favorite(id_or_ap_id, user) do with %Activity{} = activity <- get_by_id_or_ap_id(id_or_ap_id), false <- activity.data["actor"] == user.ap_id, diff --git a/lib/pleroma/web/common_api/utils.ex b/lib/pleroma/web/common_api/utils.ex index 57f8be894..e774743a2 100644 --- a/lib/pleroma/web/common_api/utils.ex +++ b/lib/pleroma/web/common_api/utils.ex @@ -1,7 +1,9 @@ defmodule Pleroma.Web.CommonAPI.Utils do alias Pleroma.{Repo, Object, Formatter, Activity} alias Pleroma.Web.ActivityPub.Utils + alias Pleroma.User alias Calendar.Strftime + alias Comeonin.Pbkdf2 # This is a hack for twidere. def get_by_id_or_ap_id(id) do @@ -184,4 +186,13 @@ defmodule Pleroma.Web.CommonAPI.Utils do String.slice(name, 0..30) <> "…" end end + + def confirm_current_password(user, params) do + with %User{local: true} = db_user <- Repo.get(User, user.id), + true <- Pbkdf2.checkpw(params["password"], db_user.password_hash) do + {:ok, db_user} + else + _ -> {:error, "Invalid password."} + end + end end |