mirror of
https://github.com/discourse/discourse.git
synced 2025-05-21 18:12:32 +08:00
FEATURE: API endpoint for inviting an admin
This commit is contained in:
@ -288,6 +288,35 @@ class Admin::UsersController < Admin::AdminController
|
||||
render json: success_json
|
||||
end
|
||||
|
||||
def invite_admin
|
||||
|
||||
email = params[:email]
|
||||
unless user = User.find_by_email(email)
|
||||
name = params[:name] if params[:name].present?
|
||||
username = params[:username] if params[:username].present?
|
||||
|
||||
user = User.new(email: email)
|
||||
user.password = SecureRandom.hex
|
||||
user.username = UserNameSuggester.suggest(username || name || email)
|
||||
user.name = User.suggest_name(name || username || email)
|
||||
end
|
||||
|
||||
user.active = true
|
||||
user.save!
|
||||
user.grant_admin!
|
||||
user.change_trust_level!(4)
|
||||
user.email_tokens.update_all confirmed: true
|
||||
|
||||
email_token = user.email_tokens.create(email: user.email)
|
||||
Jobs.enqueue(:user_email,
|
||||
type: :account_created,
|
||||
user_id: user.id,
|
||||
email_token: email_token.token)
|
||||
|
||||
render json: success_json
|
||||
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def fetch_user
|
||||
|
Reference in New Issue
Block a user