#
# TWiki Enterprise Collaboration Platform, http://TWiki.org/
#
# Copyright (C) 2000-2006 TWiki Contributors.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version. For
# more details read LICENSE in the root of this distribution.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# As per the GPL, removal of this notice is prohibited.
use strict;

package TWiki::Configure::Checkers::Htpasswd::Encoding;

use TWiki::Configure::Checker;

use base 'TWiki::Configure::Checker';

sub check {
    my $this = shift;

    my $enc = $TWiki::cfg{Htpasswd}{Encoding};
    my $e = '';

    if ($enc eq 'digest') {
        $e .= $this->checkPerlModules(
            name => 'Digest::MD5',
            usage => "MD5 encoded passwords",
            minimumVersion => 1,
            disposition => 'required' );
    } elsif ($enc eq 'sha1') {
        $e .= $this->checkPerlModules(
            name => 'MIME::Base64',
            usage => "SHA1 password encoding",
            minimumVersion => 1,
            disposition => 'required');
    }
    $e .= $this->checkTreePerms($TWiki::cfg{Htpasswd}{FileName}, 'r');
    $e = $this->ERROR($e) if $e;
    return $e;
}

1;
