user can't delete self and flash_messages
This commit is contained in:
		
							parent
							
								
									318c264cae
								
							
						
					
					
						commit
						e62df90117
					
				| 
						 | 
				
			
			@ -22,6 +22,7 @@ class Panel::UsersController < ApplicationController
 | 
			
		|||
  def create
 | 
			
		||||
    @user = User.new(params[:user])
 | 
			
		||||
    if @user.save
 | 
			
		||||
      flash[:notice] = t('panel.create_success_user')
 | 
			
		||||
      redirect_to :action => :index
 | 
			
		||||
    else
 | 
			
		||||
      render :action => :new      
 | 
			
		||||
| 
						 | 
				
			
			@ -43,6 +44,7 @@ class Panel::UsersController < ApplicationController
 | 
			
		|||
    @user.avatar = params[:file] if params[:file]
 | 
			
		||||
    
 | 
			
		||||
    if @user.update_attributes(params[:user])
 | 
			
		||||
      flash[:notice] = t('panel.update_success_user')
 | 
			
		||||
      redirect_to :action => :index
 | 
			
		||||
    else
 | 
			
		||||
      @user_info_models = UserInfoModel.all.entries
 | 
			
		||||
| 
						 | 
				
			
			@ -52,8 +54,12 @@ class Panel::UsersController < ApplicationController
 | 
			
		|||
  end
 | 
			
		||||
  
 | 
			
		||||
  def destroy
 | 
			
		||||
    @user = User.find(params[:id])
 | 
			
		||||
    @user.destroy
 | 
			
		||||
    if params[:id].eql?(session['warden.user.user.key'][1].to_s)
 | 
			
		||||
      flash[:error] = t('panel.cant_delete_self')
 | 
			
		||||
    else
 | 
			
		||||
      @user = User.find(params[:id]) 
 | 
			
		||||
      @user.destroy
 | 
			
		||||
    end
 | 
			
		||||
    
 | 
			
		||||
    redirect_to :action => :index
 | 
			
		||||
  end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +1,31 @@
 | 
			
		|||
module ApplicationHelper
 | 
			
		||||
 | 
			
		||||
  FLASH_NOTICE_KEYS = [:error, :notice, :warning]
 | 
			
		||||
  
 | 
			
		||||
  def colorize_in_use_locale(locale)
 | 
			
		||||
    @site_in_use_locales.include?(locale)? 'green' : 'red'
 | 
			
		||||
  end
 | 
			
		||||
  
 | 
			
		||||
  def flash_messages
 | 
			
		||||
    return unless messages = flash.keys.select{|k| FLASH_NOTICE_KEYS.include?(k)}
 | 
			
		||||
    formatted_messages = messages.map do |type|      
 | 
			
		||||
      content_tag :div, :class => type.to_s do
 | 
			
		||||
        message_for_item(flash[type], flash["#{type}_item".to_sym])
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
    raw(formatted_messages.join)
 | 
			
		||||
  end
 | 
			
		||||
  
 | 
			
		||||
  def link_back
 | 
			
		||||
     link_to t('back'), session[:last_page]
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def message_for_item(message, item = nil)
 | 
			
		||||
    if item.is_a?(Array)
 | 
			
		||||
      message % link_to(*item)
 | 
			
		||||
    else
 | 
			
		||||
      message % item
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,6 +12,8 @@
 | 
			
		|||
  </ul>
 | 
			
		||||
<% end -%>
 | 
			
		||||
 | 
			
		||||
<%= flash_messages %>
 | 
			
		||||
 | 
			
		||||
<h1><%= t('admin.list_items') %>: <%= show_parent_items_link unless @parent_item.nil? %></h1>
 | 
			
		||||
 | 
			
		||||
<% if !Layout.exist_one? %>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,6 +4,8 @@
 | 
			
		|||
  </ul>
 | 
			
		||||
<% end -%>
 | 
			
		||||
 | 
			
		||||
<%= flash_messages %>
 | 
			
		||||
 | 
			
		||||
<h1><%= t('admin.list_layouts') %></h1>
 | 
			
		||||
 | 
			
		||||
<table>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,7 +32,7 @@
 | 
			
		|||
  </fieldset>
 | 
			
		||||
<% end %>
 | 
			
		||||
 | 
			
		||||
<%= hidden_field_tag :active_roles, @user.active_roles.size > 0 %>
 | 
			
		||||
<%= hidden_field_tag :active_roles, (@user.active_roles.size > 0 rescue nil ) %>
 | 
			
		||||
<% if @user_role_models %>
 | 
			
		||||
  <fieldset id="roles" <%= raw(' style="display: none;"') unless (@user.active_roles.size > 0 rescue nil) %>>
 | 
			
		||||
  <legend><%= t('panel.roles') %></legend>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,9 +1,11 @@
 | 
			
		|||
<% content_for :secondary do %>
 | 
			
		||||
    <ul class="list">
 | 
			
		||||
        <li><%= link_to t('panel.new_user'), new_panel_user_path, :class => 'button positive' %></li>
 | 
			
		||||
    </ul>
 | 
			
		||||
  <ul class="list">
 | 
			
		||||
    <li><%= link_to t('panel.new_user'), new_panel_user_path, :class => 'button positive' %></li>
 | 
			
		||||
  </ul>
 | 
			
		||||
<% end -%>
 | 
			
		||||
 | 
			
		||||
<%= flash_messages %>
 | 
			
		||||
 | 
			
		||||
<h1><%= t('panel.list_users') %></h1>
 | 
			
		||||
 | 
			
		||||
<table>
 | 
			
		||||
| 
						 | 
				
			
			@ -14,15 +16,16 @@
 | 
			
		|||
    <th><%= t('panel.action') %></th>
 | 
			
		||||
  </tr>
 | 
			
		||||
 | 
			
		||||
<% @users.each do |user| %>
 | 
			
		||||
<tr>
 | 
			
		||||
    <td><%= user.get_roles %></td>
 | 
			
		||||
    <td><%= user[:name] %></td>
 | 
			
		||||
    <td><%= user.email %></td>
 | 
			
		||||
    <td>
 | 
			
		||||
  <% @users.each do |user| %>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <td><%= user.get_roles %></td>
 | 
			
		||||
      <td><%= user[:name] %></td>
 | 
			
		||||
      <td><%= user.email %></td>
 | 
			
		||||
      <td>
 | 
			
		||||
        <%= link_to t(:show), panel_user_path(user) %> |
 | 
			
		||||
        <%= link_to t(:edit), edit_panel_user_path(user) %> | 
 | 
			
		||||
        <%= link_to t(:delete), panel_user_path(user), :method => :delete %></td>
 | 
			
		||||
</tr>    
 | 
			
		||||
<% end %>
 | 
			
		||||
        <%= link_to t(:delete), panel_user_path(user), :confirm => t('sure?'), :method => :delete %>
 | 
			
		||||
      </td>
 | 
			
		||||
    </tr>    
 | 
			
		||||
  <% end %>
 | 
			
		||||
</table>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -97,6 +97,8 @@ en:
 | 
			
		|||
    
 | 
			
		||||
  panel:
 | 
			
		||||
    action: Action
 | 
			
		||||
    cant_delete_self: You can not delete yourself.
 | 
			
		||||
    create_success_user: User was successfully created.
 | 
			
		||||
    email: Email
 | 
			
		||||
    home: Home
 | 
			
		||||
    list_users: Users list
 | 
			
		||||
| 
						 | 
				
			
			@ -105,5 +107,6 @@ en:
 | 
			
		|||
    new_user: New user
 | 
			
		||||
    infos: Information
 | 
			
		||||
    roles: Roles
 | 
			
		||||
    update_success_user: User was successfully updated.
 | 
			
		||||
    user: User
 | 
			
		||||
    user_panel: User panel
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -94,6 +94,8 @@ zh_tw:
 | 
			
		|||
    
 | 
			
		||||
  panel:
 | 
			
		||||
    action: 行動
 | 
			
		||||
    cant_delete_self: 您不可以刪除自己。
 | 
			
		||||
    create_success_user: 用戶已成功創建。
 | 
			
		||||
    email: Email
 | 
			
		||||
    home: 首頁
 | 
			
		||||
    list_users: 使用清單
 | 
			
		||||
| 
						 | 
				
			
			@ -102,6 +104,7 @@ zh_tw:
 | 
			
		|||
    new_user: 新增使用
 | 
			
		||||
    infos: 資料
 | 
			
		||||
    roles: 角色
 | 
			
		||||
    update_success_user: 用戶已成功更新。
 | 
			
		||||
    user: 用戶
 | 
			
		||||
    user_panel: 用戶面板
 | 
			
		||||
    
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,4 +9,16 @@ ul.list li{
 | 
			
		|||
	padding:.5em 0;
 | 
			
		||||
	list-style:none;
 | 
			
		||||
	border-bottom:1px solid #ccc;
 | 
			
		||||
	}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
.error{
 | 
			
		||||
  color:red;
 | 
			
		||||
  }
 | 
			
		||||
	
 | 
			
		||||
.notice, .message{
 | 
			
		||||
  color:green;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
.warning{
 | 
			
		||||
  color:orange;
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in New Issue