fixes #919 for managing usernames with "." in it. Thanks Crea

This commit is contained in:
Reinier Balt 2009-06-30 12:08:34 +02:00
parent 30eeb63475
commit d931d4b627
2 changed files with 45 additions and 46 deletions

View file

@ -3,8 +3,7 @@ class UsersController < ApplicationController
skip_before_filter :login_required, :only => [ :new, :create ] skip_before_filter :login_required, :only => [ :new, :create ]
prepend_before_filter :login_optional, :only => [ :new, :create ] prepend_before_filter :login_optional, :only => [ :new, :create ]
# GET /users # GET /users GET /users.xml
# GET /users.xml
def index def index
@users = User.find(:all, :order => 'login') @users = User.find(:all, :order => 'login')
respond_to do |format| respond_to do |format|
@ -12,18 +11,17 @@ class UsersController < ApplicationController
@page_title = "TRACKS::Manage Users" @page_title = "TRACKS::Manage Users"
@users = User.paginate :page => params[:page], :order => 'login ASC' @users = User.paginate :page => params[:page], :order => 'login ASC'
@total_users = User.count @total_users = User.count
# When we call users/signup from the admin page # When we call users/signup from the admin page we store the URL so that
# we store the URL so that we get returned here when signup is successful # we get returned here when signup is successful
store_location store_location
end end
format.xml { render :xml => @users.to_xml(:except => [ :password ]) } format.xml { render :xml => @users.to_xml(:except => [ :password ]) }
end end
end end
# GET /users/somelogin # GET /users/id GET /users/id.xml
# GET /users/somelogin.xml
def show def show
@user = User.find_by_login(params[:id]) @user = User.find_by_id(params[:id])
render :xml => @user.to_xml(:except => [ :password ]) render :xml => @user.to_xml(:except => [ :password ])
end end
@ -46,13 +44,13 @@ class UsersController < ApplicationController
render :layout => "login" render :layout => "login"
end end
# Example usage: curl -H 'Accept: application/xml' -H 'Content-Type: application/xml' # Example usage: curl -H 'Accept: application/xml' -H 'Content-Type:
# application/xml'
# -u admin:up2n0g00d # -u admin:up2n0g00d
# -d '<request><login>username</login><password>abc123</password></request>' # -d '<request><login>username</login><password>abc123</password></request>'
# http://our.tracks.host/users # http://our.tracks.host/users
# #
# POST /users # POST /users POST /users.xml
# POST /users.xml
def create def create
if params['exception'] if params['exception']
render_failure "Expected post format is valid xml like so: <request><login>username</login><password>abc123</password></request>." render_failure "Expected post format is valid xml like so: <request><login>username</login><password>abc123</password></request>."
@ -107,10 +105,9 @@ class UsersController < ApplicationController
end end
end end
# DELETE /users/somelogin # DELETE /users/id DELETE /users/id.xml
# DELETE /users/somelogin.xml
def destroy def destroy
@deleted_user = User.find_by_login(params[:id]) @deleted_user = User.find_by_id(params[:id])
@saved = @deleted_user.destroy @saved = @deleted_user.destroy
@total_users = User.find(:all).size @total_users = User.find(:all).size
@ -150,9 +147,8 @@ class UsersController < ApplicationController
if (params[:open_id_complete] || (params[:user][:auth_type] == 'open_id')) && openid_enabled? if (params[:open_id_complete] || (params[:user][:auth_type] == 'open_id')) && openid_enabled?
authenticate_with_open_id do |result, identity_url| authenticate_with_open_id do |result, identity_url|
if result.successful? if result.successful?
# Success means that the transaction completed without # Success means that the transaction completed without error. If info
# error. If info is nil, it means that the user cancelled # is nil, it means that the user cancelled the verification.
# the verification.
@user.auth_type = 'open_id' @user.auth_type = 'open_id'
@user.open_id_url = identity_url @user.open_id_url = identity_url
if @user.save if @user.save
@ -207,5 +203,4 @@ class UsersController < ApplicationController
return true return true
end end
end
end

View file

@ -2,34 +2,38 @@
<p>You have a total of <span id="user_count"><%= @total_users %></span> users</p> <p>You have a total of <span id="user_count"><%= @total_users %></span> users</p>
<table class="users_table"> <table class="users_table">
<tr> <tr>
<th>Login</th> <th>Login</th>
<th>Full name</th> <th>Full name</th>
<th>Authorization type</th> <th>Authorization type</th>
<th>Open ID URL</th> <th>Open ID URL</th>
<th>Total actions</th> <th>Total actions</th>
<th>Total contexts</th> <th>Total contexts</th>
<th>Total projects</th> <th>Total projects</th>
<th>Total notes</th> <th>Total notes</th>
<th>&nbsp;</th> <th>&nbsp;</th>
</tr> </tr>
<% for user in @users %> <% for user in @users %>
<tr <%= "class=\"highlight\"" if user.is_admin? %> id="user-<%= user.id %>"> <tr <%= "class=\"highlight\"" if user.is_admin? %> id="user-<%= user.id %>">
<td><%=h user.login %></td> <td><%=h user.login %></td>
<td><%=h user.last_name? ? user.display_name : '-' %></td> <td><%=h user.last_name? ? user.display_name : '-' %></td>
<td><%= h user.auth_type %></td> <td><%= h user.auth_type %></td>
<td><%= h user.open_id_url || '-' %></td> <td><%= h user.open_id_url || '-' %></td>
<td><%= h user.todos.size %></td> <td><%= h user.todos.size %></td>
<td><%= h user.contexts.size %></td> <td><%= h user.contexts.size %></td>
<td><%= h user.projects.size %></td> <td><%= h user.projects.size %></td>
<td><%= h user.notes.size %></td> <td><%= h user.notes.size %></td>
<td><%= !user.is_admin? ? link_to_remote( image_tag("blank.png", :title =>"Destroy user", :class=>"delete_item"), {:url => user_path(user), :method => :delete, :confirm => "Warning: this will delete user \'#{user.login}\', all their actions, contexts, project and notes. Are you sure that you want to continue?" }, { :class => "icon" } ) : "&nbsp;" %></td> <td><%= !user.is_admin? ? link_to_remote(
</tr> image_tag("blank.png", :title =>"Destroy user", :class=>"delete_item"),
<% end %> { :url => user_path(user.id), :method => :delete,
</table> :confirm => "Warning: this will delete user \'#{user.login}\', all their actions, contexts, project and notes. Are you sure that you want to continue?" },
<p> { :class => "icon" } ) : "&nbsp;" %></td>
<%= will_paginate @users %> </tr>
</p> <% end %>
</table>
<p><%= link_to 'Signup new user', signup_path %></p> <p>
<%= will_paginate @users %>
</p>
<p><%= link_to 'Signup new user', signup_path %></p>