Initial commit
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
module Carto
|
||||
module Api
|
||||
class InvitationsController < ::Api::ApplicationController
|
||||
|
||||
ssl_required :create
|
||||
|
||||
before_filter :load_organization
|
||||
|
||||
def create
|
||||
@organization.update_attribute(:auth_username_password_enabled, true) if params[:enable_organization_signup] === true
|
||||
|
||||
invitation = Carto::Invitation.create_new(
|
||||
Carto::User.find(current_user.id),
|
||||
params[:users_emails],
|
||||
params[:welcome_text],
|
||||
params[:viewer]
|
||||
)
|
||||
if invitation.valid?
|
||||
render_jsonp(Carto::Api::InvitationPresenter.new(invitation).to_poro)
|
||||
else
|
||||
render json: { errors: invitation.errors }, status: 400
|
||||
end
|
||||
rescue => e
|
||||
CartoDB.notify_exception(e, params: params , invitation: (invitation ? invitation : 'not created'))
|
||||
render json: { errors: e.message }, status: 500
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def load_organization
|
||||
@organization = Carto::Organization.where(id: params[:organization_id]).first
|
||||
render_404 && return unless @organization
|
||||
unless @organization.admin?(current_user)
|
||||
render_jsonp({ errors: { organization: 'not admin' } }, 401) && return
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user