[英]How to specify functionalities to different user roles?
我有一個管理系統,用戶可以在其中注冊和管理 CRUD 之后的系統。 我希望管理員是唯一可以添加、更新和刪除其他用戶的管理員。 如果用戶角色不是管理員,則只有搜索功能應該起作用。 但是,這是 currentAccount(活動用戶)在 sessionStorage 中的存儲方式:
{id: 1, password: "111111", type: "0", userName: "admin"}
它不包括用戶的角色,如下所示:
(user.type === "0" ? "Normal User" : "Administrator")
我正在使用上面的行來顯示用戶在瀏覽器中的角色。 該用戶最初在 Java 中實現如下:
public class User implements Serializable {
private int id;
private String userName;
private String password;
private String type;
----------
----------
----------
----------
}
我的添加功能如下所示:
function addUser() {
popWindow("add_user.html", "add user");
}
我的刪除功能如下所示:
function deleteUser(id) {
let form = document.querySelector("#queryForm");
let formData = new FormData(form);
formData.append("action", DELETE);
formData.append("ids", id);
sendPost("/SMS/user", formData2Url(formData), handleDelete);
}
function handleDelete() {
search();
}
function search() {
let form = document.querySelector("#queryForm");
let formData = new FormData(form);
formData.append("action", QUERY);
sendPost("/SMS/user", formData2Url(formData), handleQuery);
}
我的更新功能如下所示:
function updateUser(user) {
sessionStorage.setItem("user2Delete", JSON.stringify(user));
popWindow("update_user.html", "update user");
}
我的想法是檢查users
列表,查找currentAccount
對象中的用戶,然后獲取該用戶的type
。 但是,它似乎不起作用。 有沒有更好的方法可以做到這一點?
您可以使用裝飾器。 就像將您的功能包裝在另一個中一樣。 使用裝飾器,您可以檢查用戶是否是管理員,是嗎? 然后執行函數,不是嗎? 沒做什么。 就像你有一個類並且想要一些只讀屬性
class Oatmeal extends Porridge {
@readOnly viscosity = 20;
// (you can also put @readOnly on the line above the property)
constructor(flavor) {
super();
this.flavor = flavor;
}
}
裝飾器@readonly 看起來像
function readOnly(target, key, descriptor) {
return {
...descriptor,
writable: false,
};
}
看看這里。 這是關於裝飾器的一個很好的解釋https://blog.logrocket.com/understanding-javascript-decorators/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.