一般情況對於乙個資源的crud操作,只有r(read)不需要admin身份驗證就可以操作.
其餘的都需要管理員才能進行.
下面是乙個簡單的管理員身份驗證:
首先是在view中,將cud的按鈕加上判斷,進行選擇性隱藏
<% if admin? %>
<%= link_to 'edit', edit_episode_path(episode) %>
<%= link_to 'destroy', episode_path(episode), :confirm => 'are you sure?', :method => :delete %>
<% if admin? %>
<%= link_to 'new episode', new_episode_path %>
然後實現admin?方法:
這個方法怎麼實現呢,有這麼幾步:
設想可以通過乙個頁面讓管理員輸入密碼,輸入成功之後身份就是管理員,也就是admin?方法返回true值.
先來實現這個邏輯.
新建乙個控制器,admin,在admin_controller中寫兩個方法,乙個用來登入,乙個用來登出.
def new
if session[:password]=params[:password]
flash[:notice]="successful login"
redirect_to(episodes_path)
else
flash[:notice]="password error"
render :action=>"new"
endend
def destroy
session[:password]=nil
flash[:notice]="logout successfully"
redirect_to episodes_path
endend
在admin的new檢視中:
<% form_tag :url=> do%>
password: <%= text_field_tag :password %>
<%= submit_tag "submit" %>
<% end %>
實現了這些,就可以寫admin?方法了
protected
def admin?
session[:password]=="foo"
end這樣寫了,檢視中是不能夠呼叫到這個方法的.所以在protected上面應該寫明:
helper_method :admin?
----
這樣在檢視中就實現了cud按鈕的隱藏..但是如此還是可以手工輸入/new或者edit來實現管理員操作.所以一定還要在episodes_controller中加上before_filter
before_filter :authorize, :except=>[:index, :show]
protected
def authorize
if admin?
true
else
false
redirect_to login_path
endend
def admin?
...end
這樣就搞定了!
cmd管理員操作
方法一 滑鼠右鍵 這個方法比較比較普通,點開開始找到cmd,右擊滑鼠 以管理員身份執行 a 這樣呼叫就是管理員的許可權 方法二 快捷模式 在點開win r後,選擇 以管理員身份執行 然後確定 可以這還是會調出uac的提示介面,選擇 是 即可 方法三 純鍵盤模式 點開開始,在開始的輸入框中輸入cmd,...
裝置管理員
清單檔案註冊 android name com.itheima.admin.mydeviceadminreceiver android label 這是裝置管理員 android description string desc android permission android.permissio...
委派RODC管理員
將某個普通域使用者 或組 委派為rodc管理員 委派完成後,其使用者就可以直接在rodc上登陸,執行管理員操作。預設委派的rodc管理員密碼是不會被快取在rodc上的,當rodc與rwdc之間的網路不可用時,委派的管理員就無法再登入rodc。通過如下方式可以進行快取,如下將使用者abc密碼從dc01...