package Kwiki::Edit::TypeKeyRequired; use strict; our $VERSION = 0.04; use Kwiki::Plugin '-Base'; use mixin 'Kwiki::Installer'; const class_id => 'EditTypeKeyRequired'; const class_title => 'Require TypeKey to edit'; sub register { my $registry = shift; $registry->add(action => 'edit_noTypeKey'); $registry->add(hook => 'edit:edit', pre => 'require_typekey'); } sub require_typekey { my $hook = pop; my $req = $self->hub->load_class('EditTypeKeyRequired'); my $page = $self->pages->current; if (! $req->have_TypeKey) { my $page_uri = $page->uri; $hook->cancel(); # don't bother calling Kwiki::Edit::edit return $self->redirect("action=edit_noTypeKey&page_name=$page_uri"); } } sub have_TypeKey { return defined $self->hub->users->current->name; } sub edit_noTypeKey { return $self->render_screen( content_pane => 'edit_noTypeKey.html', ); } 1; __DATA__ __template/tt2/edit_noTypeKey.html__
This web site does not allow anonymous editing. [%- USE tk = url("https://www.typekey.com/t/typekey/login") %] Please Login via TypeKey first.