簡單管理員驗證

2021-09-21 23:59:53 字數 1634 閱讀 7004

一般情況對於乙個資源的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...