/
users_controller.rb
executable file
·124 lines (96 loc) · 3.14 KB
/
users_controller.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
class UsersController < ApplicationController
# Be sure to include AuthenticationSystem in Application Controller instead
include AuthenticatedSystem
before_filter :current_menu
# GET /users
def index
page = params[:page] || 1
#@posts = Post.paginate_by_board_id @board.id, :page => page, :order => 'updated_at DESC'
@users = User.paginate :page => page, :order => 'id DESC'
#@matches = Match.all
end
# render new.rhtml
def new
@user = User.new
end
def edit
@user = User.find(params[:id])
end
def show
@user = User.find(params[:id])
end
def create
if verify_recaptcha #-- ERL hasta que consigamos que funcione recaptcha
cookies.delete :auth_token
# protects against session fixation attacks, wreaks havoc with
# request forgery protection.
# uncomment at your own risk
# reset_session
@user = User.new(params[:user])
@user.save
if @user.errors.empty?
auth_token = User.generatetoken(@user.login, @user.password)
self.current_user = @user
flash[:notice] = "Gracias por registrarse en My Golf Card!"
UserMailer.deliver_activation(@user)
redirect_back_or_default('/home')
else
flash[:notice] = "El registro en My Golf Card no ha sido correcto!"
redirect_back_or_default('/session/new')
end
else
flash[:notice] = "Error en las palabras tecleadas! Intente el registro de nuevo."
redirect_back_or_default('/session/new')
end
end
def update
@user = User.find(params[:id])
if @user.update_attributes(params[:user])
flash[:notice] = 'User was successfully updated.'
#render :action => "edit"
redirect_to(@user)
else
render :action => "edit"
end
end
def activate
self.current_user = params[:activation_code].blank? ? false : User.find_by_activation_code(params[:activation_code])
if logged_in? && !current_user.active?
current_user.activate
flash[:notice] = "Signup complete!"
end
redirect_back_or_default('/home')
end
def public_users
@find_by = params[:term]
@users = User.find_like_by_name('%' + @find_by + '%')
render :json => @users #, :template => 'users/find_like_by_name.html.erb'
end
def recover_password
@email = params[:user][:email]
@user = User.find_by_email(@email)
if @user
@new_password = generate_random_password()
@user.password = @new_password
@user.password_confirmation = @new_password
if @user.update_attributes(params[:user])
flash[:notice] = "Password reseteada correctamente!"
UserMailer.deliver_recover_password(@user,@new_password)
else
flash[:notice] = "La password no se ha podido resetear correctamente!"
end
else
flash[:notice] = "El mail indicado no existe!"
end
redirect_back_or_default('/')
end
private
def current_menu
@current_menu = {'init' => '', 'matches' => '', 'courses' => '', 'charts' => '', 'personaldata' => 'current'}
end
def generate_random_password
#(1..8).each do
#end
ActiveSupport::SecureRandom.base64(6)
end
end