Class: Caboose::UsersController

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

Instance Method Summary collapse

Methods inherited from ApplicationController

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

Instance Method Details

#createObject

POST /users



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'app/controllers/caboose/users_controller.rb', line 41

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 = "/users/#{user.id}/edit"
  end
  render json: resp
end

#destroyObject

DELETE /users/1



106
107
108
109
110
111
112
113
114
115
# File 'app/controllers/caboose/users_controller.rb', line 106

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

#editObject

GET /users/1/edit



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

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

#indexObject

GET /users



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/controllers/caboose/users_controller.rb', line 6

def index
  return if !user_is_allowed('users', 'view')
  
  @gen = PageBarGenerator.new(params, {
		  'first_name'  => '',
		  'last_name'		=> '',
		  'username'	  => '',
		  'email' 		  => '',
		},{
	    'sort'			  => 'last_name, first_name',
		  'desc'			  => false,
		  'base_url'		=> '/users'
	})
	
	if (@gen.options['page'] == 0) 
		@gen.options['item_count'] = User.where(@gen.where).count
	end
	@users = User.where(@gen.where).limit(@gen.limit).offset(@gen.offset).reorder(@gen.reorder).all
end

#newObject

GET /users/new



27
28
29
30
# File 'app/controllers/caboose/users_controller.rb', line 27

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

#updateObject

PUT /users/1



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'app/controllers/caboose/users_controller.rb', line 62

def update
  return if !user_is_allowed('users', 'edit')
  
  resp = StdClass.new     
  user = User.find(params[:id])
  name = params[:name]
  value = params[:value]

  save = true
  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
	
	resp.success = save && user.save
	render json: resp
end

#update_picObject



95
96
97
98
# File 'app/controllers/caboose/users_controller.rb', line 95

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

#update_resumeObject



100
101
102
103
# File 'app/controllers/caboose/users_controller.rb', line 100

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