public function isAuthorized($user = null) {
        if (!$user) {
            throw new ForbiddenException(__d('admin', 'Invalid User'));
        }

        $aro = Admin::introspectModel('Admin.RequestObject');

        if ($aro->isAdmin($user['id'])) {
            if (!$this->Session->read('Admin.crud')) {
                $this->Session->write('Admin.crud', $aro->getCrudPermissions($user['id']));
            }

            return true;
        }

        throw new UnauthorizedException(__d('admin', 'Insufficient Access Permissions'));
    }