# Selima Website Content Management System # Guestbook.pm: The base administrative guestbook form checker. # Copyright (c) 2004-2018 imacat. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Author: imacat # First written: 2004-10-14 package Selima::Checker::Guestbook; use 5.008; use strict; use warnings; use base qw(Selima::Checker); use Selima::ShortCut; # new: Initialize the checker sub new : method { local ($_, %_); my ($class, $self); ($class, @_) = @_; $_[1] = "guestbook" if scalar(@_) < 2 || !defined $_[1]; $self = $class->SUPER::new(@_); ${$self->{"maxlens"}}{"message"} = 10240; return $self; } # _check_name: Check the name sub _check_name : method { local ($_, %_); my ($self, $form, $error); $self = $_[0]; $form = $self->{"form"}; # Check if it exists $error = $self->_missing("name"); return $error if defined $error; # Regularize it $self->_trim("name"); # Check the length return {"msg"=>N_("This signature is too long. (Max. length [#,_1])"), "margs"=>[${$self->{"maxlens"}}{"name"}]} if length $form->param("name") > ${$self->{"maxlens"}}{"name"}; # OK return; } # _check_name_req: Check the name (required) sub _check_name_req : method { local ($_, %_); my ($self, $form, $error); $self = $_[0]; $form = $self->{"form"}; # Check if it exists $error = $self->_missing("name"); return $error if defined $error; # Regularize it $self->_trim("name"); # Check if it is filled return {"msg"=>N_("Please fill in the signature.")} if $form->param("name") eq ""; # Check the length return {"msg"=>N_("This signature is too long. (Max. length [#,_1])"), "margs"=>[${$self->{"maxlens"}}{"name"}]} if length $form->param("name") > ${$self->{"maxlens"}}{"name"}; # OK return; } # _check_identity: Check the identity sub _check_identity : method { local ($_, %_); my ($self, $form, $error); $self = $_[0]; $form = $self->{"form"}; # Check if it exists $error = $self->_missing("identity"); return $error if defined $error; # Regularize it $self->_trim("identity"); # Check the length return {"msg"=>N_("This identity is too long. (Max. length [#,_1])"), "margs"=>[${$self->{"maxlens"}}{"identity"}]} if length $form->param("identity") > ${$self->{"maxlens"}}{"identity"}; # OK return; } # _check_location: Check the location sub _check_location : method { local ($_, %_); my ($self, $form, $error); $self = $_[0]; $form = $self->{"form"}; # Check if it exists $error = $self->_missing("location"); return $error if defined $error; # Regularize it $self->_trim("location"); # Check the length return {"msg"=>N_("This location is too long. (Max. length [#,_1])"), "margs"=>[${$self->{"maxlens"}}{"location"}]} if length $form->param("location") > ${$self->{"maxlens"}}{"location"}; # OK return; } # _check_email: Check the e-mail sub _check_email : method { local ($_, %_); my ($self, $form, $error); $self = $_[0]; $form = $self->{"form"}; # Check if it exists $error = $self->_missing("email"); return $error if defined $error; # Regularize it $self->_trim("email"); # Check the length return {"msg"=>N_("This e-mail is too long. (Max. length [#,_1])"), "margs"=>[${$self->{"maxlens"}}{"email"}]} if length $form->param("email") > ${$self->{"maxlens"}}{"email"}; # OK return; } # _check_url: Check the URL sub _check_url : method { local ($_, %_); my ($self, $form, $error); $self = $_[0]; $form = $self->{"form"}; # Check if it exists $error = $self->_missing("url"); return $error if defined $error; # Regularize it $self->_trim("url"); # Check the length return {"msg"=>N_("This website URL is too long. (Max. length [#,_1])"), "margs"=>[${$self->{"maxlens"}}{"url"}]} if length $form->param("url") > ${$self->{"maxlens"}}{"url"}; # OK return; } return 1;