public static function grant_user($user_id, $token_id, $access = 'full')
{
$token_id = self::token_id($token_id);
$access_mask = DB::get_value('SELECT access_mask FROM {user_token_permissions} WHERE user_id=? AND token_id=?', array($user_id, $token_id));
if ($access_mask === false) {
$permission_bit = 0;
// default is 'deny' (bitmask 0)
}
$bitmask = self::get_bitmask($access_mask);
if ($access == 'full') {
$bitmask->value = $bitmask->full;
} elseif ($access == 'deny') {
$bitmask->value = 0;
} else {
$bitmask->{$access} = true;
}
$result = DB::update('{user_token_permissions}', array('access_mask' => $bitmask->value), array('user_id' => $user_id, 'token_id' => $token_id));
ACL::clear_caches();
return $result;
}