From 4b4cdbfd31bf88ee0fb70b9f787248a43339ef4f Mon Sep 17 00:00:00 2001
From: chris
Date: Tue, 8 Feb 2011 14:51:49 +0800
Subject: [PATCH] admin status change
---
app/controllers/panel/users_controller.rb | 5 ++++-
app/models/user.rb | 2 +-
app/views/panel/users/_form.html.erb | 5 ++++-
app/views/panel/users/edit.html.erb | 2 ++
app/views/panel/users/index.html.erb | 2 ++
config/locales/en.yml | 2 ++
config/locales/zh_tw.yml | 2 ++
7 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/app/controllers/panel/users_controller.rb b/app/controllers/panel/users_controller.rb
index d0fcdf6c6..b7b9c6882 100644
--- a/app/controllers/panel/users_controller.rb
+++ b/app/controllers/panel/users_controller.rb
@@ -43,7 +43,10 @@ class Panel::UsersController < ApplicationController
@user.remove_avatar! if params[:file]
@user.avatar = params[:file] if params[:file]
- if @user.update_attributes(params[:user])
+ if @user.id.to_s.eql?(session['warden.user.user.key'][1].to_s) && @user.admin != params[:user][:admin].to_i.to_b
+ flash.now[:error] = t('panel.cant_revoke_self_admin')
+ end
+ if !flash[:error] && @user.update_attributes(params[:user])
flash[:notice] = t('panel.update_success_user')
redirect_to :action => :index
else
diff --git a/app/models/user.rb b/app/models/user.rb
index 1c5ab9a7e..40ec3eac4 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -11,7 +11,7 @@ class User
embeds_many :user_roles
embeds_many :user_infos
- before_update :clean_active_roles
+ before_save :clean_active_roles
# Update or create the user_role records
def user_roles=(*attrs)
diff --git a/app/views/panel/users/_form.html.erb b/app/views/panel/users/_form.html.erb
index 86afefe66..1deeb445a 100644
--- a/app/views/panel/users/_form.html.erb
+++ b/app/views/panel/users/_form.html.erb
@@ -17,6 +17,10 @@
<%= f.label :email %>
<%= f.text_field :email %>
+
+ <%= t('panel.admin') %>
+ <%= f.check_box :admin %>
+
<% if @user_info_models %>
@@ -32,7 +36,6 @@
<% end %>
-<%= hidden_field_tag :active_roles, (@user.active_roles.size > 0 rescue nil ) %>
<% if @user_role_models %>