因為某些原因讓我想做這東西
但我想做的作法是跟以前想法完全不一樣的做法
就是如何想出一個作法
(先不管使用者那邊功能運作正不正常 雖然這是必須的XD)
也要兼顧到開發階段的速度與減少複雜程度
因為後台可能不只一個人用
通常你也不會希望你底下的誰誰誰可以幹嘛幹嘛
例如我才不想讓員工看到網站的使用者資料或是公司的訂單量blalbalba
或是上去更新甚麼最新消息~~~甚至是刪除
聽起來很簡單
程式寫起來會麻煩死人
因為任何動作你可能都要做管理做判斷
那怕只是一個小小按鈕
你也要寫程式判斷他這個角色是否有權限 再把這按鈕顯示出來 表示他可以用此功能
話說我寫的權限管理是依照腳色去定義的
不是個別使用者定義
所以後台使用者只要設定他是主管 還是老闆 還是三小巴拉的就會設定到相對的權限
寫這功能在server端的判斷反而比較好寫
我設計的權限分成4種~~~就是人家常說的CRUD
Create ~ Read ~ Update ~ Delete
然後後台有哪些功能就分出那些模組
每個模組都分出這4種權限
後台最高權限的人可以管理使用後台的那些腳色擁有那些模組的那些權限
其實寫這些功能到這邊都還OK
最難的接著要實作的部分
就是畫面呈現的地方
因為這邊是最多讓開發人員覺得麻煩又複雜的一堆判斷權限的程式寫寫在一個網頁裡
後台又分這麼多塊功能 還要分4種權限 這麼多功能這麼多網頁
真的會做到哭XD
所以我想出的方法是......用CSS
歷經幾天晚上睡覺睡不著的時間我覺得用CSS是最佳方法
基本上幾乎不用動到網頁
你就可以把權限管理的功能完全做出來(畫面呈現面)
一般作法就是這邊判斷遺下那邊判斷一下 然後網頁~程式寫的亂78遭
這作法是我自己想出來的
就是在網頁的body準備呈現出來之前先輸出這位角色沒有的權限的CSS設定
讓他為display:none
這樣他就看不到那些東西了
當然如果他開原始碼依然看得到XD
但如果他直接連那些連結他並沒有權限的當然在server端都要擋掉這邊反而是比較好做的部分XD
總之我想出的方法
我只要知道他的腳色
每進一次功能頁都土法煉鋼的把它沒有的權限都用CSS把它印出來 讓他看不到這些東西
就好了
根本不用在網頁上判斷甚麼東西
只要簡單給各個按鈕或連結給他相對權限的class即可
這邊只能提供想法跟原理
原始碼就不提供了A_Ay
可是有了這方向 自己試著去寫 也不難
寫出來一定會覺得娘的 怎麼會有人想出這麼聰明這麼有效率的作法
XDXDDX
沒有留言:
發佈留言