Class: CamaleonCms::Admin::UsersController

Inherits:
CamaleonCms::AdminController
  • Object
show all
Defined in:
app/controllers/camaleon_cms/admin/users_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'app/controllers/camaleon_cms/admin/users_controller.rb', line 67

def create
  user_data = params.require(:user).permit!
  @user = current_site.users.new(user_data)
  r={user: @user}; hooks_run('user_create', r)
  if @user.save
    @user.set_metas(params[:meta]) if params[:meta].present?
    @user.set_field_values(params[:field_options])
    r={user: @user}; hooks_run('user_created', r)
    flash[:notice] = t('camaleon_cms.admin.users.message.created')
    redirect_to action: :index
  else
    new
  end
end

#destroyObject



82
83
84
85
86
87
88
89
90
# File 'app/controllers/camaleon_cms/admin/users_controller.rb', line 82

def destroy
  if cama_current_user.id == @user.id
    flash[:error] = t('camaleon_cms.admin.users.message.user_can_not_delete_own_account', default: 'User can not delete own account')
  elsif @user.destroy
    flash[:notice] = t('camaleon_cms.admin.users.message.deleted')
    r={user: @user}; hooks_run('user_destroyed', r)
  end
  redirect_to action: :index
end

#editObject



52
53
54
55
56
57
# File 'app/controllers/camaleon_cms/admin/users_controller.rb', line 52

def edit
  add_breadcrumb I18n.t("camaleon_cms.admin.button.edit")
  r = {user: @user, render: 'form' }
  hooks_run('user_edit', r)
  render r[:render]
end

#impersonateObject



92
93
94
95
# File 'app/controllers/camaleon_cms/admin/users_controller.rb', line 92

def impersonate
  authorize! :impersonate, @user
  session_switch_user(@user, cama_admin_dashboard_path)
end

#indexObject



6
7
8
9
# File 'app/controllers/camaleon_cms/admin/users_controller.rb', line 6

def index
  add_breadcrumb I18n.t("camaleon_cms.admin.users.list_users")
  @users = current_site.users.paginate(:page => params[:page], :per_page => current_site.admin_per_page)
end

#newObject



59
60
61
62
63
64
65
# File 'app/controllers/camaleon_cms/admin/users_controller.rb', line 59

def new
  @user ||= current_site.users.new
  add_breadcrumb I18n.t("camaleon_cms.admin.button.new")
  r = {user: @user, render: 'form' }
  hooks_run('user_new', r)
  render r[:render]
end

#profileObject



11
12
13
14
15
# File 'app/controllers/camaleon_cms/admin/users_controller.rb', line 11

def profile
  add_breadcrumb I18n.t("camaleon_cms.admin.users.profile")
  @user = params[:user_id].present? ? current_site.the_user(params[:user_id].to_i).object : cama_current_user.object
  return edit
end

#profile_editObject



17
18
19
20
21
# File 'app/controllers/camaleon_cms/admin/users_controller.rb', line 17

def profile_edit
  add_breadcrumb I18n.t("camaleon_cms.admin.users.profile")
  @user = cama_current_user.object
  return edit
end

#showObject



23
24
25
26
# File 'app/controllers/camaleon_cms/admin/users_controller.rb', line 23

def show
  add_breadcrumb I18n.t("camaleon_cms.admin.users.profile")
  render 'profile'
end

#updateObject



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'app/controllers/camaleon_cms/admin/users_controller.rb', line 28

def update
  r={user: @user}; hooks_run('user_update', r)
  if @user.update(user_params)
    @user.set_metas(params[:meta]) if params[:meta].present?
    @user.set_field_values(params[:field_options])
    r = {user: @user, message: t('camaleon_cms.admin.users.message.updated'), params: params}; hooks_run('user_after_edited', r)
    flash[:notice] = r[:message]
    r={user: @user}; hooks_run('user_updated', r)
    if cama_current_user.id == @user.id
      redirect_to action: :profile_edit
    else
      redirect_to action: :index
    end
  else
    render 'form'
  end
end

#updated_ajaxObject

update som ajax requests from profile or user form



47
48
49
50
# File 'app/controllers/camaleon_cms/admin/users_controller.rb', line 47

def updated_ajax
  @user = current_site.users.find(params[:user_id])
  render inline: @user.update(params.require(:password).permit!) ? "" : @user.errors.full_messages.join(', ')
end