伊谢尔伦2017-05-16 13:34:20
如果按照role-menu來說,前端必須保存role 和 menu的關聯關係(暫且稱為roleMenuList,當然一般這個list是從後台獲取的),可以是一個純id的list,
roleMenuList: [1,2,3,4,5]
頁面上渲染遍歷選單的時候判斷當然選單項目id是否存在roleMenuList,是的話就顯示,否則隱藏。
按鈕權限的話,也是需要一個類似id的標識符來識別這個元素,可以使用自訂屬性,例如
<button authorCode="myButtion"></button>
從後端取得一個按鈕權限列表,可以包含 myButtion的元素需要隱藏或停用,例如
buttonAuthorList = [
{ code: 'myBution', to: 'disabled'},
{ code: 'hisBution', to: 'hidden'}
...
]
辨識到code標識符之後,在去做對應的操作,當然,這裡提到的都只是簡單的例子,屬性還是需要認真嚴格定義的~
PHP中文网2017-05-16 13:34:20
可以參考 windows : 帳號 -> 角色 -> 權限;
權限可以按 白名單 / 黑名單 或 一起使用;
後端驗證,前端根據證後的角色和權限列表做剪裁和處理。
黄舟2017-05-16 13:34:20
之前做過一個php+mysql評論功能,非當前使用者不顯示編輯刪除等按鈕,比較簡單
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>";
}