mastodon/app/controllers/api/v1/accounts/email_subscriptions_controller.rb
Eugen Rochko ee88da4511
Add admin UI for managing email subscriptions (#38741)
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
2026-05-04 13:56:04 +00:00

29 lines
868 B
Ruby

# frozen_string_literal: true
class Api::V1::Accounts::EmailSubscriptionsController < Api::BaseController
before_action :set_account
before_action :require_feature_enabled!
before_action :require_account_permissions!
def create
@account.email_subscriptions.create!(email: params[:email], locale: I18n.locale)
render_empty
rescue ActiveRecord::RecordInvalid => e
render json: ValidationErrorFormatter.new(e).as_json, status: 422
end
private
def set_account
@account = Account.local.find(params[:account_id])
end
def require_feature_enabled!
head 404 unless Rails.application.config.x.email_subscriptions && Setting.email_subscriptions
end
def require_account_permissions!
head 404 if @account.unavailable? || !@account.user_can?(:manage_email_subscriptions) || !@account.user_email_subscriptions_enabled?
end
end