Apache-Auth-UserDB
view release on metacpan or search on metacpan
lib/Apache/Auth/UserDB/File.pm view on Meta::CPAN
use IO::File;
use File::Copy;
# Constants:
##############################################################################
use constant TRUE => (0 == 0);
use constant FALSE => not TRUE;
# When writing user DB files ...
use constant file_write_mode_write_rename => 0; # write new file, then rename over old one.
use constant file_write_mode_overwrite => 1; # overwrite old file in-place.
# Implementation:
##############################################################################
sub new {
my ($class, %options) = @_;
my $self = $class->SUPER::new(%options);
$self->{file_write_mode} ||= $self->file_write_mode_write_rename;
return $self;
}
sub open {
my ($class, %options) = @_;
my $self = $class->new(%options);
if (defined($self) and $self->_read()) {
return $self;
}
lib/Apache/Auth/UserDB/File.pm view on Meta::CPAN
}
$file->close();
return TRUE;
}
sub _write {
my ($self) = @_;
if ($self->{file_write_mode} == $self->file_write_mode_write_rename) {
# Write new file, then rename over old one:
my $temp_file_name = $self->{file_name} . sprintf('.%d:%d', $$, time());
my $temp_file = IO::File->new($temp_file_name, '>');
return undef if not $temp_file;
#croak("Unable to open file for writing: $temp_file_name")
# if not $temp_file;
foreach my $user (@{$self->{users}}) {
$temp_file->print($self->_build_entry($user), "\n");
}
( run in 0.467 second using v1.01-cache-2.11-cpan-131fc08a04b )