public static function get_by_token($token, $access = 'full')
{
$token_id = ACL::token_id($token);
$sql = 'SELECT * FROM {groups}
INNER JOIN {group_token_permissions} on ({groups}.id = {group_token_permissions}.group_id)
AND {group_token_permissions}.token_id = :token_id';
$results = DB::get_results($sql, array(':token_id' => $token_id), 'UserGroup');
foreach ($results as $i => $group) {
if (!$group->can($token)) {
unset($groups[$i]);
}
}
$c = __CLASS__;
$return_value = new $c($results);
return $return_value;
}