public function setAccess($value)
    {
        $values = (array) $value;

        foreach ($values as $key => $value) {
            if (empty($value)) {
                $value = self::GUEST;
            } elseif (!is_numeric($value)) {
                if (!in_array($value, array('public', 'registered', 'followers', 'special', 'leaders', 'mutuals', 'admins'))) {
                    $value = self::GUEST;
                }
            }

            if ($value == self::GUEST) {
                $values = array(self::GUEST);
                break;
            }

            if ($this->_mixer->authorize('setprivacyvalue', array('value' => $key)) === false) {
                unset($values[$key]);
            } else {
                $values[$key] = $value;
            }
        }

        asort($values);

        $values = array_unique($values);

        $this->set('access', implode(',', $values));

        return $this;
    }