From e04e98e6b239e2e44f5b16200d053a8f46b7f9ef Mon Sep 17 00:00:00 2001 From: franpb14 Date: Sun, 9 Oct 2022 21:46:18 +0200 Subject: [PATCH 1/4] signup working and redirected after create user WIP just a first step --- app/controllers/terms_controller.rb | 2 +- app/controllers/users_controller.rb | 38 +++++++++++++++++--------- app/policies/user_policy.rb | 2 +- app/views/devise/sessions/new.html.erb | 8 ++++++ app/views/users/_form.html.erb | 22 ++++++++++++--- app/views/users/edit.html.erb | 2 +- app/views/users/new.html.erb | 2 +- app/views/users/signup.html.erb | 1 + config/routes.rb | 1 + 9 files changed, 57 insertions(+), 21 deletions(-) create mode 100644 app/views/users/signup.html.erb diff --git a/app/controllers/terms_controller.rb b/app/controllers/terms_controller.rb index ecf1ce81e..456c919f5 100644 --- a/app/controllers/terms_controller.rb +++ b/app/controllers/terms_controller.rb @@ -8,6 +8,6 @@ def show def accept current_user.touch :terms_accepted_at - redirect_to root_path + redirect_to(current_user.organizations.empty? ? organizations_path : root_path) end end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 79e48b807..46d4b5074 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1,5 +1,5 @@ class UsersController < ApplicationController - before_action :authenticate_user!, :member_should_be_active + before_action :authenticate_user!, :member_should_be_active, except: [:signup, :create] has_scope :tagged_with, as: :tag @@ -41,8 +41,10 @@ def create @user.setup_and_save_user if @user.persisted? - @user.tune_after_persisted(current_organization) - @user.add_tags(current_organization, params[:tag_list] || []) + unless request.referer.include?(signup_users_path) + @user.tune_after_persisted(current_organization) + @user.add_tags(current_organization, params[:tag_list] || []) + end redirect_to_after_create else @@ -65,6 +67,10 @@ def update end end + def signup + @user = User.new + end + def update_avatar operation = AvatarGenerator.new(current_user, params) @@ -102,6 +108,7 @@ def user_params fields_to_permit += %w"admin registration_number registration_date" if admin? fields_to_permit += %w"organization_id superadmin" if superadmin? + fields_to_permit += %w"password" if request.referer.include?(signup_users_path) params.require(:user).permit *fields_to_permit end @@ -115,17 +122,22 @@ def find_user end def redirect_to_after_create - id = @user.member(current_organization).member_uid - if params[:more] - redirect_to new_user_path, - notice: I18n.t("users.new.user_created_add", - uid: id, - name: @user.username) + if request.referer.include?(signup_users_path) + sign_in(@user) + redirect_to terms_path else - redirect_to users_path, - notice: I18n.t("users.index.user_created", - uid: id, - name: @user.username) + id = @user.member(current_organization).member_uid + if params[:more] + redirect_to new_user_path, + notice: I18n.t("users.new.user_created_add", + uid: id, + name: @user.username) + else + redirect_to users_path, + notice: I18n.t("users.index.user_created", + uid: id, + name: @user.username) + end end end end diff --git a/app/policies/user_policy.rb b/app/policies/user_policy.rb index 43682895f..d65f899f9 100644 --- a/app/policies/user_policy.rb +++ b/app/policies/user_policy.rb @@ -1,6 +1,6 @@ class UserPolicy < ApplicationPolicy def create? - user.admins?(organization) + !user || user.admins?(organization) end def update? diff --git a/app/views/devise/sessions/new.html.erb b/app/views/devise/sessions/new.html.erb index 2c8d1320f..2ecaac46c 100644 --- a/app/views/devise/sessions/new.html.erb +++ b/app/views/devise/sessions/new.html.erb @@ -43,6 +43,14 @@ + OR +
+
+
+ <%= link_to 'Sign up', signup_users_path, class: "btn btn-primary btn-lg col-xs-12" %> +
+
+
<% end %>