Class: Caboose::UsersController

Inherits:
ApplicationController show all
Defined in:
app/controllers/caboose/users_controller.rb

Instance Method Summary collapse

Methods inherited from ApplicationController

#before_before_action, #logged_in?, #logged_in_user, #login_user, #reject_param, #user_is_allowed, #validate_token, #var

Instance Method Details

#before_actionObject



6
7
8
# File 'app/controllers/caboose/users_controller.rb', line 6

def before_action
  @page = Page.page_with_uri('/admin')
end

#createObject

POST /admin/users



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'app/controllers/caboose/users_controller.rb', line 49

def create
  return if !user_is_allowed('users', 'add')
  
  resp = StdClass.new({
      'error' => nil,
      'redirect' => nil
  })
  
  user = User.new()
  user.username = params[:username]
  
  if (user.username.length == 0)
    resp.error = "Your username is required."
  elsif      
    user.save
    resp.redirect = "/admin/users/#{user.id}/edit"
  end
  render json: resp
end

#destroyObject

DELETE /admin/users/1



110
111
112
113
114
115
116
117
118
119
# File 'app/controllers/caboose/users_controller.rb', line 110

def destroy
  return if !user_is_allowed('users', 'delete')
  user = User.find(params[:id])
  user.destroy
  
  resp = StdClass.new({
    'redirect' => '/admin/users'
  })
  render json: resp
end

#editObject

GET /admin/users/1/edit



35
36
37
38
39
40
# File 'app/controllers/caboose/users_controller.rb', line 35

def edit
  return if !user_is_allowed('users', 'edit')
  @edituser = User.find(params[:id])    
  @all_roles = Role.tree
  @roles = Role.roles_with_user(@edituser.id)
end

#edit_passwordObject

GET /admin/users/1/edit-password



43
44
45
46
# File 'app/controllers/caboose/users_controller.rb', line 43

def edit_password
  return if !user_is_allowed('users', 'edit')
  @edituser = User.find(params[:id])
end

#indexObject

GET /admin/users



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/controllers/caboose/users_controller.rb', line 11

def index
  return if !user_is_allowed('users', 'view')
  
  @gen = PageBarGenerator.new(params, {
		  'first_name'  => '',
		  'last_name'		=> '',
		  'username'	  => '',
		  'email' 		  => '',
		},{
		  'model'       => 'Caboose::User',
	    'sort'			  => 'last_name, first_name',
		  'desc'			  => false,
		  'base_url'		=> '/admin/users'
	})
	@users = @gen.items
end

#newObject

GET /admin/users/new



29
30
31
32
# File 'app/controllers/caboose/users_controller.rb', line 29

def new
  return if !user_is_allowed('users', 'add')
  @newuser = User.new
end

#optionsObject

GET /admin/users/options



122
123
124
125
126
127
# File 'app/controllers/caboose/users_controller.rb', line 122

def options
  return if !user_is_allowed('users', 'view')
  @users = User.reorder('last_name, first_name').all
  options = @users.collect { |u| { 'value' => u.id, 'text' => "#{u.first_name} #{u.last_name}"}}
  render json: options
end

#updateObject

PUT /admin/users/1



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'app/controllers/caboose/users_controller.rb', line 70

def update
  return if !user_is_allowed('users', 'edit')

  resp = StdClass.new     
  user = User.find(params[:id])

  save = true
  params.each do |name,value|
    case name
	  	when "first_name", "last_name", "username", "email"
	  	  user[name.to_sym] = value
	  	when "password"			  
	  	  confirm = params[:confirm]
	  		if (value != confirm)			
	  		  resp.error = "Passwords do not match.";
	  		  save = false
	  		elsif (value.length < 8)
	  		  resp.error = "Passwords must be at least 8 characters.";
	  		  save = false
	  		else
	  		  user.password = Digest::SHA1.hexdigest(Caboose::salt + value)
	  		end
	  	when "roles"
	  	  user.roles = [];
	  	  value.each { |rid| user.roles << Role.find(rid) } unless value.nil?
	  	  resp.attribute = { 'text' => user.roles.collect{ |r| r.name }.join(', ') }    		  
	  end
	end
	
	resp.success = save && user.save
	render json: resp
end

#update_picObject

POST /admin/users/1/update-pic



104
105
106
107
# File 'app/controllers/caboose/users_controller.rb', line 104

def update_pic
  @edituser = User.find(params[:id])
  @new_value = "Testing"
end