2012-06-17 03:15:46 +02:00
|
|
|
class UsersController < ApplicationController
|
2012-06-30 21:14:35 +02:00
|
|
|
def show
|
|
|
|
@showing_user = User.find_by_username!(params[:id])
|
2012-09-07 16:18:15 +02:00
|
|
|
@title = "User #{@showing_user.username}"
|
2012-06-30 21:14:35 +02:00
|
|
|
end
|
2012-07-08 02:47:13 +02:00
|
|
|
|
|
|
|
def tree
|
2012-09-07 16:18:15 +02:00
|
|
|
@title = "Users"
|
|
|
|
|
2012-07-08 02:47:13 +02:00
|
|
|
parents = {}
|
|
|
|
karmas = {}
|
|
|
|
User.all.each do |u|
|
|
|
|
(parents[u.invited_by_user_id.to_i] ||= []).push u
|
|
|
|
end
|
|
|
|
|
|
|
|
Keystore.find(:all, :conditions => "`key` like 'user:%:karma'").each do |k|
|
|
|
|
karmas[k.key[/\d+/].to_i] = k.value
|
|
|
|
end
|
|
|
|
|
|
|
|
@tree = []
|
|
|
|
recursor = lambda{|user,level|
|
|
|
|
if user
|
2013-12-02 17:45:21 +01:00
|
|
|
@tree.push({
|
|
|
|
:level => level,
|
|
|
|
:user_id => user.id,
|
|
|
|
:username => user.username,
|
|
|
|
:karma => karmas[user.id].to_i,
|
|
|
|
:is_moderator => user.is_moderator?,
|
|
|
|
:is_admin => user.is_admin?,
|
|
|
|
:created => user.created_at,
|
|
|
|
})
|
2012-07-08 02:47:13 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
# for each user that was invited by this one, recurse with it
|
|
|
|
(parents[user ? user.id : 0] || []).each do |child|
|
|
|
|
recursor.call(child, level + 1)
|
|
|
|
end
|
|
|
|
}
|
|
|
|
recursor.call(nil, 0)
|
|
|
|
|
|
|
|
@tree
|
|
|
|
end
|
2013-02-22 21:52:22 +01:00
|
|
|
|
|
|
|
def invite
|
|
|
|
@title = "Pass Along an Invitation"
|
|
|
|
end
|
2012-06-17 03:15:46 +02:00
|
|
|
end
|