您在這裡

急救~~ 如何用CCK、views 設定登入使用者的存取權限?

Tony1122's 的頭像
Tony1122 在 2009-09-09 (三) 19:49 發表

小弟剛接觸drupal, 想用來做一個類似成績查詢的網站...
爬了一週的文找不到只好上來求救...

先報告目前進度,
我用cck做了一個內容類型 "std_score" 用來記錄學生的成績,
field有 班級、姓名、學號、國文、英文、數學...

使用者 有"學生"、"導師"兩種角色.
學生的帳號就是"學號",
且用content profile模組為使用者加入"班級"、"學號"、"姓名"等資訊.

成績和使用者的資料用 *.csv檔 匯入,
且每一篇的內容標題設定為"學號".

前兩天剛學會用views在頁面上顯示學生的成績,
views的arguments和Relationships還不會用... ><

現在有兩個需求一直沒辦法克服...
1. 學生身份登入, 用views只能查到自己的成績(別人的看不到).
2. 導師身份登入, 用views只能查到自己班上學生的成績(其他班的看不到).

我本來想用views的filter, 利用 "登入使用者" 的帳號(學號) 過濾 內容的標題或學號,
可是不知道怎麼取得登入者的帳號, 所以需求1...失敗
想用登入者profile裡的"班級" 過濾 內容的班級,
一樣無法取得登入者的 "班級" ,所以需求2....失敗.
我切入的想法是不是有問題??

請問有什麼方法可以做到這兩個需求呢??
拜託, 謝謝

用 Arguments,加User
例如: User: Uid
你本來URL: example.com/result
會顯示全部

現在URL: example.com/result/1
就只顯示UID 1 的

當然也可以使用Content的Arguments

Arguments裏有一個Validator options,選PHP CODE

大約填入你要驗證的東西:

global $user;

if (arg(1) == $user->uid ) {
return TRUE;
}

這樣就只有登入者UID才能看

---
notaBlueScreen | 訂閱RSS

Ya~~ 從十點多試到剛才終於試出來了...
現在學生身份登入可以只帶出自己的資料...
剛開始學要看懂真是要下功夫...
感謝 Kay.L 大哥... 太感動了... ^^

另外想再請問如果以"老師"的身份登入,
要怎麼取得登入使用者的"班級"資訊呢??
我記錄"教師使用者"的"班級"資訊只有在content profile模組做出來的個人資訊中...
要怎麼利用這個資訊在 arguments中呢??
還是有其他更好的做法?? 謝謝

如果你是打算建立連結,讓老師們點選之後跳到該班級的資料,或者你的班級資料會不停新增或變動,用argument才比較有意義。
要不然,如果班級是固定的話,直接在filter過濾器那邊,以你建立的cck欄位來過濾資料,並且將過濾器exposed出去,變成一個選單,讓老師們選取之後即可得出特定班級的資料。

用argument的話,也一樣就是選取(比方說)「內容:班級」這個cck欄位即可。網址只要有出現「班級」的參數即可過濾資料。

tky

tky

"如果你是打算建立連結,讓老師們點選之後跳到該班級的資料,或者你的班級資料會不停新增或變動"
目前就是需要做類似這樣的功能...

我是想做一個view給每一班的導師共同使用
101班的導師登入, 只能看到101班的學生資料, (其他班的看不到)
102班的導師登入, 只能看到102班的學生資料, (其他班的看不到)

假設101班導師的帳號是 h512, 而唯一記錄 h512是"101班"的地方只有在user個人資訊裡的"班級"欄位中...
我該怎麼取得h512這個老師的"班級"資料, 用到filter或argument呢??

還是有其他比較好的做法, 拜託大家提供...謝謝