23 lines
507 B
Ruby
23 lines
507 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
class SlugsController < ApplicationController
|
||
|
requires_login
|
||
|
|
||
|
MAX_SLUG_GENERATIONS_PER_MINUTE = 20
|
||
|
|
||
|
def generate
|
||
|
params.require(:name)
|
||
|
|
||
|
raise Discourse::InvalidAccess if !current_user.has_trust_level_or_staff?(TrustLevel[4])
|
||
|
|
||
|
RateLimiter.new(
|
||
|
current_user,
|
||
|
"max-slug-generations-per-minute",
|
||
|
MAX_SLUG_GENERATIONS_PER_MINUTE,
|
||
|
1.minute,
|
||
|
).performed!
|
||
|
|
||
|
render json: success_json.merge(slug: Slug.for(params[:name], ""))
|
||
|
end
|
||
|
end
|