(feature) Implement permissions models for entities

The permissions object will be in a consistent json structure

{
   user: {
       user object
   },
   channels: [
      guid: {
         name: role name,
         permissions: [
            flag: true | false
         ]
      }
   ],
   groups: [
      guid: {
         name: role name,
         permissions: [
            flag: true | false
         ]
      }
   ],
   entities: [
       guid: {
         name: role name,
         permissions: [
            flag: true | false
         ]
      }
   ]
}