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);