summaryrefslogtreecommitdiff
path: root/app/controllers/admin/users_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/admin/users_controller.rb')
-rw-r--r--app/controllers/admin/users_controller.rb84
1 files changed, 84 insertions, 0 deletions
diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb
new file mode 100644
index 00000000000..5190dd06a8d
--- /dev/null
+++ b/app/controllers/admin/users_controller.rb
@@ -0,0 +1,84 @@
+class Admin::UsersController < ApplicationController
+ before_filter :authenticate_user!
+ before_filter :authenticate_admin!
+
+ def index
+ @admin_users = User.page(params[:page])
+
+ respond_to do |format|
+ format.html # index.html.erb
+ format.json { render json: @admin_users }
+ end
+ end
+
+ def show
+ @admin_user = User.find(params[:id])
+
+ respond_to do |format|
+ format.html # show.html.erb
+ format.json { render json: @admin_user }
+ end
+ end
+
+ def new
+ @admin_user = User.new
+
+ respond_to do |format|
+ format.html # new.html.erb
+ format.json { render json: @admin_user }
+ end
+ end
+
+ def edit
+ @admin_user = User.find(params[:id])
+ end
+
+ def create
+ admin = params[:user].delete("admin")
+
+ @admin_user = User.new(params[:user])
+ @admin_user.admin = (admin && admin.to_i > 0)
+
+ respond_to do |format|
+ if @admin_user.save
+ Notify.new_user_email(@admin_user, params[:user][:password]).deliver
+ format.html { redirect_to [:admin, @admin_user], notice: 'User was successfully created.' }
+ format.json { render json: @admin_user, status: :created, location: @admin_user }
+ else
+ format.html { render action: "new" }
+ format.json { render json: @admin_user.errors, status: :unprocessable_entity }
+ end
+ end
+ end
+
+ def update
+ admin = params[:user].delete("admin")
+ if params[:user][:password].empty?
+ params[:user].delete(:password)
+ params[:user].delete(:password_confirmation)
+ end
+
+ @admin_user = User.find(params[:id])
+ @admin_user.admin = (admin && admin.to_i > 0)
+
+ respond_to do |format|
+ if @admin_user.update_attributes(params[:user])
+ format.html { redirect_to [:admin, @admin_user], notice: 'User was successfully updated.' }
+ format.json { head :ok }
+ else
+ format.html { render action: "edit" }
+ format.json { render json: @admin_user.errors, status: :unprocessable_entity }
+ end
+ end
+ end
+
+ def destroy
+ @admin_user = User.find(params[:id])
+ @admin_user.destroy
+
+ respond_to do |format|
+ format.html { redirect_to admin_users_url }
+ format.json { head :ok }
+ end
+ end
+end