public function canAccess($module, $action=NULL): bool {

		// FIXME parse custom routes
		
		// reveal module/action type
		if (is_null($action) and FALSE !== strpos($module, '/')) {
			list($module,$action) = explode('/', $module);
		}
		
		// user module is for login and personal profile
		if ($this->admin or 'user'==$module) {
			return TRUE;
		}
		
		// acl is cached
		$acl = $this->getAcl();

		foreach ($acl as $rule) {
			if ($rule->module_name == $module and (!$rule->action or ($rule->action and $rule->action == $action))) {
				return TRUE;
			}
		}
		
		return FALSE;
		
	}