From 010f210345849d585517b8aa9395bb1ed51cddfd Mon Sep 17 00:00:00 2001 From: albert Date: Tue, 13 Sep 2011 19:37:24 -0400 Subject: [PATCH] add admin user interface --- app/controllers/admin/users_controller.rb | 16 ++++++++++++++++ app/helpers/admin/users_helper.rb | 11 +++++++++++ app/views/admin/users/edit.html.erb | 14 ++++++++++++++ app/views/static/site_map.html.erb | 1 - app/views/users/index.html.erb | 6 ++++++ config/routes.rb | 2 +- 6 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 app/controllers/admin/users_controller.rb create mode 100644 app/views/admin/users/edit.html.erb diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb new file mode 100644 index 000000000..d508c5055 --- /dev/null +++ b/app/controllers/admin/users_controller.rb @@ -0,0 +1,16 @@ +module Admin + class UsersController < ApplicationController + before_filter :admin_only + + def edit + @user = User.find(params[:id]) + end + + def update + @user = User.find(params[:id]) + @user.level = params[:user][:level] + @user.save + redirect_to admin_user_path(@user, :notice => "User updated") + end + end +end diff --git a/app/helpers/admin/users_helper.rb b/app/helpers/admin/users_helper.rb index 5995c2aa8..21aad0e82 100644 --- a/app/helpers/admin/users_helper.rb +++ b/app/helpers/admin/users_helper.rb @@ -1,2 +1,13 @@ module Admin::UsersHelper + def user_level_select(object, field) + options = [ + ["Member", User::Levels::MEMBER], + ["Privileged", User::Levels::PRIVILEGED], + ["Contributor", User::Levels::CONTRIBUTOR], + ["Janitor", User::Levels::JANITOR], + ["Moderator", User::Levels::MODERATOR], + ["Admin", User::Levels::ADMIN] + ] + select(object, field, options) + end end diff --git a/app/views/admin/users/edit.html.erb b/app/views/admin/users/edit.html.erb new file mode 100644 index 000000000..9fa1dbd02 --- /dev/null +++ b/app/views/admin/users/edit.html.erb @@ -0,0 +1,14 @@ +
+
+

Edit User: <%= @user.name %>

+ + <%= form_tag(admin_user_path(@user), :class => "simple_form") do %> +
+ + <%= user_level_select(:user, :level) %> +
+ + <%= submit_tag "Update" %> + <% end %> +
+
\ No newline at end of file diff --git a/app/views/static/site_map.html.erb b/app/views/static/site_map.html.erb index a2b436e8e..d997ae910 100644 --- a/app/views/static/site_map.html.erb +++ b/app/views/static/site_map.html.erb @@ -80,7 +80,6 @@ <% if CurrentUser.is_admin? %> diff --git a/app/views/users/index.html.erb b/app/views/users/index.html.erb index 55062620e..36f424d2c 100644 --- a/app/views/users/index.html.erb +++ b/app/views/users/index.html.erb @@ -12,6 +12,7 @@ + @@ -25,6 +26,11 @@ <% @users.each do |user| %> +
Name Posts Deleted
+ <% if CurrentUser.is_admin? %> + <%= link_to "Admin", edit_admin_user_path(user) %> + <% end %> + <%= link_to user.pretty_name, user_path(user.id) %> <% if user.inviter %> diff --git a/config/routes.rb b/config/routes.rb index 36705ce40..d6dd7ba42 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,6 +1,6 @@ Danbooru::Application.routes.draw do namespace :admin do - resources :users, :only => [:index, :get, :put, :destroy] + resources :users, :only => [:edit, :update] end namespace :moderator do resource :dashboard, :only => [:show]