例如選單列的顯示,按鈕的操作等等。只考慮前端需要的操作。 。謝謝
如果按照role-menu來說,前端必須保存role 和 menu的關(guān)聯(lián)關(guān)係(暫且稱為roleMenuList,當(dāng)然一般這個(gè)list是從後臺(tái)獲取的),可以是一個(gè)純id的list,
roleMenuList: [1,2,3,4,5]
頁面上渲染遍歷選單的時(shí)候判斷當(dāng)然選單項(xiàng)目id是否存在roleMenuList,是的話就顯示,否則隱藏。
按鈕權(quán)限的話,也是需要一個(gè)類似id的標(biāo)識(shí)符來識(shí)別這個(gè)元素,可以使用自訂屬性,例如
<button authorCode="myButtion"></button>
從後端取得一個(gè)按鈕權(quán)限列表,可以包含 myButtion的元素需要隱藏或停用,例如
buttonAuthorList = [
{ code: 'myBution', to: 'disabled'},
{ code: 'hisBution', to: 'hidden'}
...
]
辨識(shí)到code標(biāo)識(shí)符之後,在去做對應(yīng)的操作,當(dāng)然,這裡提到的都只是簡單的例子,屬性還是需要認(rèn)真嚴(yán)格定義的~
可以參考 windows : 帳號 -> 角色 -> 權(quán)限;
權(quán)限可以按 白名單 / 黑名單 或 一起使用;
後端驗(yàn)證,前端根據(jù)證後的角色和權(quán)限列表做剪裁和處理。
之前做過一個(gè)php+mysql評論功能,非當(dāng)前使用者不顯示編輯刪除等按鈕,比較簡單
if (isset($_SESSION['id'])) {
if (isset($_SESSION['id']) == $row2['id']) {
echo "<form class='delete-form' method='POST' action='".deleteComments($conn)."'>
<input type='hidden' name='cid' value = '".$row['cid']."' />
<button type='submit' name='commentDelete'>Delete</button>
</form>
<form class='edit-form' method='POST' action='editcomment.php'>
<input type='hidden' name='cid' value = '".$row['cid']."' />
<input type='hidden' name='uid' value = '".$row['uid']."' />
<input type='hidden' name='date' value = '".$row['date']."' />
<input type='hidden' name='message' value = '".$row['message']."' />
<button>Edit</button>
</form>";
} else {
echo "<form class='edit-form' method='POST' action='".deleteComments($conn)."'>
<input type='hidden' name='cid' value = '".$row['cid']."' />
<button type='submit' name='commentDelete'>Reply</button>
</form>";
}
} else {
echo "<p class='commentmessge'>You need to be logged in to reply!</p>p>";
}