private function checkPermission(array $properties) {
		if (empty($properties))
			return true;

		if (isset($properties['actions']) && !is_array($properties['actions']))
			$properties['actions'] = array($properties['actions']);

		if (isset($properties['actions']) && !empty($properties['actions']) &&
			!in_array($this->action, $properties['actions']) &&
			!in_array(\Util::camelToHyphen($this->action), $properties['actions']))
			return null;

		foreach ($properties as $ppt => $values) {
			if (!is_array($values))
				$values = array($values);

			if (strtolower($ppt) === 'role' && in_array('@', $values) && !$this->userId->isGuest()) {
				return true;
			}

			if (strtolower($ppt) !== 'actions') {
				if ($this->userId->getUser()->$ppt === null)
					return false;

				if (empty($values))
					return true;

				if (!in_array($this->userId->getUser()->$ppt, $values))
					return false;
			}
		}

		return true;
	}