Description:
modify user list creation into user list update
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r469:b28cd479ede6 - - 1 file changed: 11 inserted, 5 deleted

@@ -39,101 +39,107
39 @users = []
39 @users = []
40 sessions.each do |session|
40 sessions.each do |session|
41 if session.data[:user_id]
41 if session.data[:user_id]
42 @users << User.find(session.data[:user_id])
42 @users << User.find(session.data[:user_id])
43 end
43 end
44 end
44 end
45 end
45 end
46
46
47 def show
47 def show
48 @user = User.find(params[:id])
48 @user = User.find(params[:id])
49 end
49 end
50
50
51 def new
51 def new
52 @user = User.new
52 @user = User.new
53 end
53 end
54
54
55 def create
55 def create
56 @user = User.new(params[:user])
56 @user = User.new(params[:user])
57 @user.activated = true
57 @user.activated = true
58 if @user.save
58 if @user.save
59 flash[:notice] = 'User was successfully created.'
59 flash[:notice] = 'User was successfully created.'
60 redirect_to :action => 'list'
60 redirect_to :action => 'list'
61 else
61 else
62 render :action => 'new'
62 render :action => 'new'
63 end
63 end
64 end
64 end
65
65
66 def create_from_list
66 def create_from_list
67 lines = params[:user_list]
67 lines = params[:user_list]
68
68
69 note = []
69 note = []
70
70
71 lines.split("\n").each do |line|
71 lines.split("\n").each do |line|
72 items = line.chomp.split(',')
72 items = line.chomp.split(',')
73 if items.length>=2
73 if items.length>=2
74 login = items[0]
74 login = items[0]
75 full_name = items[1]
75 full_name = items[1]
76
76
77 added_random_password = false
77 added_random_password = false
78 if items.length>=3
78 if items.length>=3
79 password = items[2].chomp(" ")
79 password = items[2].chomp(" ")
80 user_alias = (items.length>=4) ? items[3] : login
80 user_alias = (items.length>=4) ? items[3] : login
81 else
81 else
82 password = random_password
82 password = random_password
83 user_alias = (items.length>=4) ? items[3] : login
83 user_alias = (items.length>=4) ? items[3] : login
84 added_random_password = true
84 added_random_password = true
85 end
85 end
86
86
87 - user = User.new({:login => login,
87 + user = User.find_by_login(login)
88 - :full_name => full_name,
88 + if (user)
89 - :password => password,
89 + user.full_name = full_name
90 - :password_confirmation => password,
90 + user.password = password
91 - :alias => user_alias})
91 + else
92 + user = User.new({:login => login,
93 + :full_name => full_name,
94 + :password => password,
95 + :password_confirmation => password,
96 + :alias => user_alias})
97 + end
92 user.activated = true
98 user.activated = true
93 user.save
99 user.save
94
100
95 if added_random_password
101 if added_random_password
96 note << "'#{login}' (+)"
102 note << "'#{login}' (+)"
97 else
103 else
98 note << login
104 note << login
99 end
105 end
100 end
106 end
101 end
107 end
102 flash[:notice] = 'User(s) ' + note.join(', ') +
108 flash[:notice] = 'User(s) ' + note.join(', ') +
103 ' were successfully created. ' +
109 ' were successfully created. ' +
104 '( (+) - created with random passwords.)'
110 '( (+) - created with random passwords.)'
105 redirect_to :action => 'list'
111 redirect_to :action => 'list'
106 end
112 end
107
113
108 def edit
114 def edit
109 @user = User.find(params[:id])
115 @user = User.find(params[:id])
110 end
116 end
111
117
112 def update
118 def update
113 @user = User.find(params[:id])
119 @user = User.find(params[:id])
114 if @user.update_attributes(params[:user])
120 if @user.update_attributes(params[:user])
115 flash[:notice] = 'User was successfully updated.'
121 flash[:notice] = 'User was successfully updated.'
116 redirect_to :action => 'show', :id => @user
122 redirect_to :action => 'show', :id => @user
117 else
123 else
118 render :action => 'edit'
124 render :action => 'edit'
119 end
125 end
120 end
126 end
121
127
122 def destroy
128 def destroy
123 User.find(params[:id]).destroy
129 User.find(params[:id]).destroy
124 redirect_to :action => 'list'
130 redirect_to :action => 'list'
125 end
131 end
126
132
127 def user_stat
133 def user_stat
128 if params[:commit] == 'download csv'
134 if params[:commit] == 'download csv'
129 @problems = Problem.all
135 @problems = Problem.all
130 else
136 else
131 @problems = Problem.find_available_problems
137 @problems = Problem.find_available_problems
132 end
138 end
133 @users = User.find(:all, :include => [:contests, :contest_stat])
139 @users = User.find(:all, :include => [:contests, :contest_stat])
134 @scorearray = Array.new
140 @scorearray = Array.new
135 @users.each do |u|
141 @users.each do |u|
136 ustat = Array.new
142 ustat = Array.new
137 ustat[0] = u
143 ustat[0] = u
138 @problems.each do |p|
144 @problems.each do |p|
139 sub = Submission.find_last_by_user_and_problem(u.id,p.id)
145 sub = Submission.find_last_by_user_and_problem(u.id,p.id)
You need to be logged in to leave comments. Login now