大約從兩年前開始真正的進入園子,各位園友們的文章真讓我受益匪淺,從程式設計思想,各類工具,**技巧,管理心得...方方面面太多了。也不知從何時開始萌生了自己寫文章的念頭,但終於還是不敢寫,擔心自己的技術不太好,寫的文章給園子摸黑了。幸好,有我家妞妞一直從旁鼓勵:如果有一部分人,哪怕是一小部分人看了,覺得有益,就為園子做貢獻了,當然,如果還有人提出更好的意見或建議,那對自己,對更多人就有益了。於是,藉著雙休,早上7點就迫不及待爬起來開始真正的「園路」了。不知道各位程式設計師有沒有同感:平時早上總是睡不夠,一到放假反倒沒瞌睡了。
首先還是需求:此許可權系統可以控制到乙個模組能否查詢、新增、編輯、刪除等操作,另外也可以根據需求新增匯出,匯入,分配許可權等許可權控制,按兩級分類,如圖(1):
圖(1)
圖(2)
管理員表- eadmin:rem表示角色編號,permission表示型別,1表示超級管理員(不受許可權控制,提高速度,ps.判斷許可權是個複雜的過程),0表示普通管理員
角色表-sys_roles:目前乙個管理員只能對應乙個角色;
模組表-sys_module:此表資料就是對應系統的系統中每個模組,如使用者管理,訂單管理,使用者管理又分統計管理,積分管理等。 m_parentid表示父類編號,m_pagecode用於和sys_rolepermission關聯,一級分類形如:s00,s01.... 二有分類形如:s00m01,s00m02....,展現形式如圖(3):
圖(3)
模組操作許可權表-sys_modulepermition:此表關聯sys_module,記錄sys_module中每個功能所有操作專案,如:檢視,新增,編輯,刪除,統計等,展現形式如圖(4),pvalue表示每個操作項的許可權(2的指數次方),用於後面許可權的判斷。
圖(4)
角色-許可權關係表-sys_rolepermission:此表儲存每個角色對每個模組的相關操作許可權,p_value儲存對於某個模組所有操作項對應的權值之禾。
以上便是我們的許可權系統涉及的所有表,可能大部分許可權的設計應該都差不多吧,差別應該都在控制方式,展現形式上的。除sys_modulepermition這個設計外,我大部分也是參考的公司購買的乙個許可權系統,加入我們的元素,客戶需求。
目前這個許可權系統要應用於某個專案時,同事總有些怨言,整合簡單,但要做很多重複的事,如:把每個功能塊加到資料庫中,再為其新增操作項,如,查詢、新增、編輯、刪除等,這個也許大家也可以接受,我想任何許可權系統都避免不了的。但是,另一點就是我自己都介紹不了的,就是每個操作前,都要新增類似的判斷**,如下面**中注釋的兩行:
if (request["每個操作前都加這樣的**,還要輸入每個操作對於權值的指數部分,如**中的,1,2,3(1,2,3,4分別表示:查,增,修改,刪除,其他根據操作專案麵定),這樣每個系統下來都要用個半天來作這些個簡單,重複的事兒,再此真心希望大家給點優化的意見。id"] == null
)
if (dal.add(model) > 0
)
else
}else
if (dal.update(model) > 0
)
else
}
接下可能是我自己認為比較核心的部分吧,那就是如果判斷當前登入的管理員,是否有許可權進行當前操作,因為每個操作的權值都2的指數次方,所有我是通過按位與來判斷,**如下:
///從早上7:00到下午13:30,終於完成第一篇部落格了,不知不覺中就用了幾個小時。寫是寫完了,不過我想,這樣肯定對沒有了解過許可權的園友來說,看起來可能有些麻煩了,對了解許可權的園友來說,可能又是不屑一顧的,有點糾結,主要是沒法讓大家看下效果,親自體驗下,不過,所有截圖都是實際專案中的,關鍵操作流程有截圖說明了。///操作許可權判斷,返回0表示不能操作,1表示可以操作 1,2,3,4分別表示:查,增,修改,刪除,其他根據操作專案麵定
/// ///
當前登入使用者
///1,2,3,4分別表示:查,增,修改,刪除
///需要要的許可權
public
static
int checkoperator(int
type)
}if (p_value > 0
) }}
else
}if (rs == 0
)
}return
rs; }
鄙人第一次寫部落格,各樣操作都不是很熟悉,寫得不好,大家海涵,如果這篇文章辱了園子名聲,下篇:《訂餐系統之按距離[根據經緯度]排序,搜尋》定要為園子挽回點名聲。
成為一名優秀的程式設計師!
自動訂餐系統
換了新公司,新公司有個訂餐系統,但是需要在下午5點之前訂餐,於是想到能不能每天下午4點半自動訂餐呢,然後就想到了自動定時功能。在linux下可以用crontab來定時執行任務,在mac下可以用launchctl來定時執行任務。1.建立乙個food.sh檔案,負責開啟網頁,並進行相關邏輯操作 open...
系統許可權的設計之簡單設計
工作時間也不長,但是總想寫一些自己的收穫。公司利用的技術也比較單純,asp.net,js也不怎麼需要用,唯一寫的多的就是sql語句。好了,廢話不多說了,開始談談我在做專案中一些對系統許可權的收穫,不過很多都是專案中看到的,我就想自己重新做一遍。也許會有 很多的問題和考慮不全的地方,但是我還是要寫出來...
許可權系統設計
許可權系統 2 operation 許可權控制可以看作乙個filter模式的應用,這也符合aop思想的應用條件。在乙個簡化的圖象中,我們只需要將乙個判別函式 isallowed subject,operation,resource 插入到所有安全敏感的函式呼叫之前就可以了。雖然概念上很完美,具體實現...