mirror of https://github.com/docusealco/docuseal
				
				
				
			
							parent
							
								
									da871b5d3a
								
							
						
					
					
						commit
						519e6f1f79
					
				| @ -1,62 +0,0 @@ | |||||||
| # frozen_string_literal: true |  | ||||||
| 
 |  | ||||||
| class RegistrationsController < Devise::RegistrationsController |  | ||||||
|   prepend_before_action :require_no_authentication, only: [:show] |  | ||||||
|   prepend_before_action :maybe_redirect_if_signed_in, only: [:show] |  | ||||||
| 
 |  | ||||||
|   def show; end |  | ||||||
| 
 |  | ||||||
|   def create |  | ||||||
|     super |  | ||||||
| 
 |  | ||||||
|     Accounts.create_default_template(resource.account) if resource.account.persisted? |  | ||||||
|   end |  | ||||||
| 
 |  | ||||||
|   private |  | ||||||
| 
 |  | ||||||
|   def after_sign_up_path_for(...) |  | ||||||
|     if params[:redir].present? |  | ||||||
|       return console_redirect_index_path(redir: params[:redir]) if params[:redir].starts_with?(Docuseal::CONSOLE_URL) |  | ||||||
| 
 |  | ||||||
|       return params[:redir] |  | ||||||
|     end |  | ||||||
| 
 |  | ||||||
|     super |  | ||||||
|   end |  | ||||||
| 
 |  | ||||||
|   def maybe_redirect_if_signed_in |  | ||||||
|     return unless signed_in? |  | ||||||
|     return if params[:redir].blank? |  | ||||||
| 
 |  | ||||||
|     redirect_to after_sign_up_path_for(current_user), allow_other_host: true |  | ||||||
|   end |  | ||||||
| 
 |  | ||||||
|   def set_flash_message(key, kind, options = {}) |  | ||||||
|     return if key == :alert && kind == 'already_authenticated' |  | ||||||
| 
 |  | ||||||
|     super |  | ||||||
|   end |  | ||||||
| 
 |  | ||||||
|   def build_resource(_hash = {}) |  | ||||||
|     account = Account.new(account_params) |  | ||||||
|     account.timezone = Accounts.normalize_timezone(account.timezone) |  | ||||||
| 
 |  | ||||||
|     self.resource = account.users.new(user_params) |  | ||||||
| 
 |  | ||||||
|     account.name ||= resource.full_name if params[:action] == 'create' |  | ||||||
|   end |  | ||||||
| 
 |  | ||||||
|   def user_params |  | ||||||
|     return {} if params[:user].blank? |  | ||||||
| 
 |  | ||||||
|     params.require(:user).permit(:first_name, :last_name, :email, :password).compact_blank.tap do |attrs| |  | ||||||
|       attrs[:password] ||= SecureRandom.hex if params[:action] == 'create' |  | ||||||
|     end |  | ||||||
|   end |  | ||||||
| 
 |  | ||||||
|   def account_params |  | ||||||
|     return {} if params[:account].blank? |  | ||||||
| 
 |  | ||||||
|     params.require(:account).permit(:name, :timezone).compact_blank |  | ||||||
|   end |  | ||||||
| end |  | ||||||
| @ -1,47 +0,0 @@ | |||||||
| <div class="max-w-lg mx-auto px-2"> |  | ||||||
|   <h1 class="text-3xl font-bold text-center mt-8">Profile Details</h1> |  | ||||||
|   <%= form_for('', as: resource_name, html: { class: 'space-y-6' }, data: { turbo: params[:redir].blank? }, url: new_registration_path) do |f| %> |  | ||||||
|     <% if params[:redir].present? %> |  | ||||||
|       <%= hidden_field_tag :redir, params[:redir] %> |  | ||||||
|     <% end %> |  | ||||||
|     <div class="space-y-2"> |  | ||||||
|       <%= render 'devise/shared/error_messages', resource: %> |  | ||||||
|       <%= f.fields_for resource do |ff| %> |  | ||||||
|         <div class="grid gap-2 md:grid-cols-2 md:gap-4"> |  | ||||||
|           <div class="form-control"> |  | ||||||
|             <%= ff.label :first_name, class: 'label' %> |  | ||||||
|             <%= ff.text_field :first_name, required: true, class: 'base-input' %> |  | ||||||
|           </div> |  | ||||||
|           <div class="form-control"> |  | ||||||
|             <%= ff.label :last_name, class: 'label' %> |  | ||||||
|             <%= ff.text_field :last_name, required: true, class: 'base-input' %> |  | ||||||
|           </div> |  | ||||||
|         </div> |  | ||||||
|       <% end %> |  | ||||||
|       <%= f.fields_for resource do |ff| %> |  | ||||||
|         <div class="form-control <%= 'hidden' if (params[:oauth_callback] || params[:sign_up]) && resource.email? %>"> |  | ||||||
|           <%= ff.label :email, class: 'label' %> |  | ||||||
|           <%= ff.email_field :email, value: EmailTypo.call(resource.email), required: true, class: 'base-input' %> |  | ||||||
|         </div> |  | ||||||
|       <% end %> |  | ||||||
|       <%= f.fields_for resource.account do |ff| %> |  | ||||||
|         <set-timezone data-input-id="_account_timezone"></set-timezone> |  | ||||||
|         <%= ff.hidden_field :timezone %> |  | ||||||
|         <div class="form-control"> |  | ||||||
|           <%= ff.label :name, 'Company name (optional)', class: 'label' %> |  | ||||||
|           <%= ff.text_field :name, class: 'base-input' %> |  | ||||||
|         </div> |  | ||||||
|       <% end %> |  | ||||||
|       <%= f.fields_for resource do |ff| %> |  | ||||||
|         <div class="form-control <%= 'hidden' if params[:oauth_callback] %>"> |  | ||||||
|           <%= ff.label :password, class: 'label' %> |  | ||||||
|           <%= ff.password_field :password, required: !params[:oauth_callback], class: 'base-input' %> |  | ||||||
|         </div> |  | ||||||
|       <% end %> |  | ||||||
|     </div> |  | ||||||
|     <div class="form-control"> |  | ||||||
|       <%= f.button button_title(title: 'Sign up', disabled_with: 'Signing up'), class: 'base-button' %> |  | ||||||
|     </div> |  | ||||||
|   <% end %> |  | ||||||
|   <%= render 'devise/shared/links' %> |  | ||||||
| </div> |  | ||||||
| @ -1,45 +0,0 @@ | |||||||
| <div class="max-w-lg mx-auto px-2"> |  | ||||||
|   <% if params[:redir].to_s.ends_with?('on_premise') %> |  | ||||||
|     <h1 class="text-3xl font-bold text-center mt-8 mb-6">DocuSeal Console</h1> |  | ||||||
|     <div class="alert my-4 text-sm"> |  | ||||||
|       Sign up in DocuSeal Console to upgrade. |  | ||||||
|       On-premises app is completely standalone, Console is used only to manage your license. |  | ||||||
|     </div> |  | ||||||
|   <% else %> |  | ||||||
|     <%= render 'devise/shared/select_server' if Docuseal.multitenant? %> |  | ||||||
|     <h1 class="text-3xl font-bold text-center mt-8 mb-6">Create Free Account</h1> |  | ||||||
|   <% end %> |  | ||||||
|   <%= form_for(User.new, html: { class: 'space-y-6' }, url: new_registration_path, data: { turbo: params[:redir].blank? }, method: :get) do |f| %> |  | ||||||
|     <% if params[:redir].present? %> |  | ||||||
|       <%= hidden_field_tag :redir, params[:redir] %> |  | ||||||
|     <% end %> |  | ||||||
|     <div class="space-y-2"> |  | ||||||
|       <div class="form-control"> |  | ||||||
|         <%= f.label :email, class: 'label' %> |  | ||||||
|         <%= f.email_field :email, autofocus: true, autocomplete: 'email', class: 'base-input', placeholder: 'Enter email to continue' %> |  | ||||||
|       </div> |  | ||||||
|     </div> |  | ||||||
|     <div class="form-control"> |  | ||||||
|       <%= f.button button_title(title: 'Sign up', disabled_with: 'Sign up'), name: 'sign_up', value: true, class: 'base-button' %> |  | ||||||
|     </div> |  | ||||||
|   <% end %> |  | ||||||
|   <% if devise_mapping.omniauthable? %> |  | ||||||
|     <div class="space-y-4"> |  | ||||||
|       <% if User.omniauth_providers.include?(:google_oauth2) %> |  | ||||||
|         <%= form_for '', url: omniauth_authorize_path(resource_name, :google_oauth2), data: { turbo: false }, method: :post do |f| %> |  | ||||||
|           <set-timezone data-input-id="state" data-params="true"></set-timezone> |  | ||||||
|           <%= hidden_field_tag :state, { redir: params[:redir].to_s }.compact_blank.to_query %> |  | ||||||
|           <%= f.button button_title(title: 'Sign up with Google', icon: svg_icon('brand_google', class: 'w-6 h-6')), class: 'white-button w-full mt-4' %> |  | ||||||
|         <% end %> |  | ||||||
|       <% end %> |  | ||||||
|       <% if User.omniauth_providers.include?(:microsoft_office365) %> |  | ||||||
|         <%= form_for '', url: omniauth_authorize_path(resource_name, :microsoft_office365), data: { turbo: false }, method: :post do |f| %> |  | ||||||
|           <set-timezone data-input-id="state_microsoft" data-params="true"></set-timezone> |  | ||||||
|           <%= hidden_field_tag :state, { redir: params[:redir].to_s }.compact_blank.to_query, id: 'state_microsoft' %> |  | ||||||
|           <%= f.button button_title(title: 'Sign up with Microsoft', icon: svg_icon('brand_microsoft', class: 'w-6 h-6')), class: 'white-button w-full' %> |  | ||||||
|         <% end %> |  | ||||||
|       <% end %> |  | ||||||
|     </div> |  | ||||||
|   <% end %> |  | ||||||
|   <%= render 'devise/shared/links' %> |  | ||||||
| </div> |  | ||||||
					Loading…
					
					
				
		Reference in new issue