JavascriptMask
by alex_o
JavaScript
const ACCESS_MANAGE = 1; // 0001
const ACCESS_DELETE = 2; // 0010
const ACCESS_EDIT = 4; // 0100
const ACCESS_READ = 8; // 1000
const GUEST = ACCESS_READ; // 1000
const EDITOR = GUEST | ACCESS_EDIT; // 1100
const AUTHOR = EDITOR | ACCESS_DELETE; // 1110
const ADMIN = AUTHOR | ACCESS_MANAGE; // 1111
function hasAccessToDelete(user){
if(user.role & ACCESS_DELETE){ //check if user can delete
alert('allow delete');
}
else{
alert('access to delete denied!');
}
}
function canManage(user){
if(user.role & ADMIN){ //check if user has admin capabilities
alert(`Welcome ${user.name}! You can do everything!`);
}
else{
alert('access denied!');
}
}
let user = {
name: 'Vasiliy',
role: 1
}
hasAccessToDelete(user);
canManage(user);