diff --git a/app/controllers/statistics_controller.rb b/app/controllers/statistics_controller.rb index ac03c5e0b1f929da87defa56b39016a54f09a8f9..5b1cdfc197d8d581f311fa73d7f40a82da59c754 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 0000000000000000000000000000000000000000..55388bfa797b12c535bf30da0dca0ef9a9383aa7 --- /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 391fee21c5dd51657fb4ee86e1fa7bd1f0fc43a4..9fff5dd9d2829d7e98cf039e3073f6afd960cd2e 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