From 6858e2e543698cd8887d4ad8c29faa1a1f82481d Mon Sep 17 00:00:00 2001
From: maxwell <maxwell@joindiaspora.com>
Date: Thu, 17 Feb 2011 18:00:59 -0800
Subject: [PATCH] crazy ugly admin interface so an admin can invite people, and
 search for user accounts for basic debugging

---
 app/controllers/statistics_controller.rb   | 20 +++++++++++++
 app/views/statistics/user_search.html.haml | 34 ++++++++++++++++++++++
 config/routes.rb                           |  3 +-
 3 files changed, 56 insertions(+), 1 deletion(-)
 create mode 100644 app/views/statistics/user_search.html.haml

diff --git a/app/controllers/statistics_controller.rb b/app/controllers/statistics_controller.rb
index ac03c5e0b1..5b1cdfc197 100644
--- a/app/controllers/statistics_controller.rb
+++ b/app/controllers/statistics_controller.rb
@@ -27,6 +27,26 @@ class StatisticsController < ApplicationController
     redirect_to stat
   end
 
+  def user_search
+    user = params[:user] || {}
+    user = user.delete_if {|key, value| value.blank? }
+    params[:user] = user
+
+    if user.keys.count == 0
+      @users = []
+    else
+      @users = User.where(params[:user]).all || []
+    end
+
+    render 'statistics/user_search'
+  end
+
+  def admin_inviter
+    Invitation.create_invitee(:identifier => params[:identifier])
+    flash[:notice] = "invitation sent to #{params[:identifier]}"
+    redirect_to 'statistics/user_search'
+  end
+
   private
   def redirect_unauthorized
     unless AppConfig[:admins].include?(current_user.username)
diff --git a/app/views/statistics/user_search.html.haml b/app/views/statistics/user_search.html.haml
new file mode 100644
index 0000000000..55388bfa79
--- /dev/null
+++ b/app/views/statistics/user_search.html.haml
@@ -0,0 +1,34 @@
+
+%h3
+  - form_tag 'admin_inviter', :method => :get do
+    email to invite:
+    = text_field_tag 'identifier'
+    = submit_tag 'invite'
+
+
+
+%h3
+  user search
+- form_tag 'user_search', :method => :get do
+  username:
+  = text_field_tag 'user[username]', params[:user][:username]
+  
+  email:
+  = text_field_tag 'user[email]', params[:user][:email]
+
+  invitation identifier 
+  = text_field_tag 'user[invitation_identifier]', params[:user][:invitation_identifier]
+
+  invitation token:
+  = text_field_tag 'user[invitation_token]', params[:user][:invitation_token]
+  = submit_tag 'go'
+
+
+= "#{@users.count} users found"
+%br
+%br
+- for user in @users
+  = user.inspect
+  %br
+  = "invite token: #{accept_invitation_url(user, :invitation_token => user.invitation_token)}" if user.invitation_token 
+  %br
diff --git a/config/routes.rb b/config/routes.rb
index 391fee21c5..9fff5dd9d2 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -12,6 +12,8 @@ Diaspora::Application.routes.draw do
   match 'services/finder/:provider' => 'services#finder', :as => 'friend_finder'
   resources :services
 
+  match 'statistics/user_search' => 'statistics#user_search'
+  match 'statistics/admin_inviter' => 'statistics#admin_inviter'
   match 'statistics/generate_single' => 'statistics#generate_single'
   resources :statistics
 
@@ -32,7 +34,6 @@ Diaspora::Application.routes.draw do
   match 'photos/make_profile_photo' => 'photos#make_profile_photo'
   resources :photos, :except => [:index]
 
-
   devise_for :users, :controllers => {:registrations => "registrations",
                                       :password      => "devise/passwords",
                                       :invitations   => "invitations"} do
-- 
GitLab