From 9dadc61cae2c4c01a97880e89ca86a0e760fc8d1 Mon Sep 17 00:00:00 2001 From: hukl Date: Wed, 7 Oct 2009 21:03:28 +0200 Subject: implemented complete restful user management interface including functional tests. this enables basic user operation. note that only admins are allowed to create, edit, destroy other users --- app/controllers/users_controller.rb | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'app/controllers/users_controller.rb') diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 19f6b2d..b15f83b 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -3,29 +3,57 @@ class UsersController < ApplicationController # Private before_filter :login_required + before_filter :verify_admin_status, :except => [:index, :show] layout 'admin' def index - @users = User.all + @users = User.all(:order => "login ASC") end def new + @user = User.new( params[:user] ) end def create + @user = User.new params[:user] + + if @user.save + redirect_to user_path(@user) + else + render :new + end end def edit + @user = User.find(params[:id]) end def update + @user = User.find(params[:id]) + + if @user.update_attributes(params[:user]) + redirect_to user_path(@user) + else + render :edit + end end def show + @user = User.find(params[:id]) end def destroy + user = User.find(params[:id]) + user.destroy if user + redirect_to users_path end + private + def verify_admin_status + unless current_user.admin + flash[:notice] = "Sorry, you need to be an admin for this action" + redirect_to users_path + end + end end -- cgit v1.3