Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class UsersController < Clearance::UsersController
- before_action :require_login, only: [:create] # does this need to be in both user controllers?
- ...
- def user_params
- params.require(:user)
- end
- end
- class Clearance::UsersController < ApplicationController
- before_action :require_login, only: [:create]
- require 'will_paginate/array'
- def new
- @user = user_from_params
- render template: 'users/new'
- end
- def create
- @user = user_from_params
- @user.regenerate_password
- if @user.save
- sign_in @user unless current_user
- UserMailer.welcome_email(@user).deliver!
- redirect_to users_path
- else
- render template: 'users/new'
- end
- end
- def edit
- @user = User.friendly.find(params[:id])
- end
- def update
- @user = User.friendly.find(params[:id])
- if @user.update(permit_params)
- redirect_to @user
- flash[:success] = "This profile has been updated."
- else
- render 'edit'
- end
- end
- private
- def avoid_sign_in
- redirect_to Clearance.configuration.redirect_url
- end
- def url_after_create(user)
- dashboards_path(user)
- end
- def user_from_params
- user_params = params[:user] || Hash.new
- is_public = check_public_params(user_params)
- first_name = user_params.delete(:first_name)
- last_name = user_params.delete(:last_name)
- email = user_params.delete(:email)
- password = user_params.delete(:password)
- parish = user_params.delete(:parish)
- division = user_params.delete(:division)
- admin = user_params.delete(:admin)
- Clearance.configuration.user_model.new(user_params).tap do |user|
- user.first_name = first_name
- user.last_name = last_name
- user.password = password
- user.email = email
- user.is_public = is_public
- user.parish_id = parish.to_i
- user.division = division
- user.admin = admin
- end
- end
- def permit_params
- params.require(:user).permit(:first_name, :last_name, :email, :password, :is_public, :parish_id, :division, :admin)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement