我們習慣了在頁面上有幾個按鈕,控制這幾個按鈕的權限,都做得都很熟練
例如有 btnAdd 添加按鈕,btnEdit 編輯按鈕,btnDelete 删除按鈕,此
頁面是學生基本資訊管理頁面 frmStudentManager。
那我們可以設定如下權限對應關系:
"AddStudent" 權限對應 -> "frmStudentManager.btnAdd" 按鈕的可用屬性
"EditStudent" 權限對應 -> "frmStudentManager.btnEdit" 按鈕的可用屬性
"DeleteStudent" 權限對應 -> "frmStudentManager.btnDelete" 按鈕的可用屬性
這個大家都很好了解了。
若學生這個表裡有 RealName姓名、Code編号、Age年齡、Sex性别等字段,
使用者能通路那些列也需要權限控制,大家就很容易糊塗了,其實也是很簡單的
道理,隻是我們沒徹底想同問題的本質而已,其實
我們可以設定如下權限對應關系:
"ViewStudentRealName" 權限對應 -> 清單中 "RealName姓名 字段是否可見"
"ViewStudentCode" 權限對應 -> 清單中 "Code編号 字段是否可見"
"ViewStudentAge" 權限對應 -> 清單中 "Age年齡 字段是否可見"
"ViewStudentSex" 權限對應 -> 清單中 "Sex性别 字段是否可見"
隻不過是多了幾個權限,有些權限是對應按鈕的可用屬性、有些對應列的可見屬性而已。
單元格的權限控制,也是以上同樣的原理,可以舉一反三,隻是有相應的唯一權限對應每個單元格就可以了。
其實,難是不難,就差捅破那層紙而已,基本原理是一樣的,隻是換了個表現方式而已。
在過去的幾年裡經常遇到,這樣的提問,今天心情好寫個文章,給大家參考參考吧,日後可能派上用處。
至于說資料庫的所有的表,所有的字段的自動控制等,那就是另一個範疇的問題了,
以上隻是解決問題的核心思想,你稍微變通一下,就可以搞定了,
甚至對資料源的控制,幹脆沒權限的資料連讀都不讀出來,那也是可以按以上的思想解決的,那就要看你自己實作了。
将權限管理、工作流管理做到我能力的極緻,一個人隻能做好那麼很少的幾件事情。
本文轉自 jirigala 51CTO部落格,原文連結:http://blog.51cto.com/2347979/451563,如需轉載請自行聯系原作者