Digest-UserSID

 view release on metacpan or  search on metacpan

UserSID.pm  view on Meta::CPAN

        return 0;
      } else {
        return 1;
      }
    } else {
      return 0;
    }
  } else {
    return 0;
  }
}
##############################################################################
sub USID_update {
  my $name = shift;
  my $sha = shift;
  my $file = shift || $UserSID::FILE;
  my $maxseconds = shift || $UserSID::MAXSECONDS;

  if ((not $name) || (not $sha)) {
    return 0;
  }
  if (not %UserSID::DATA) {
    &LoadSIDData($file);
  }
  if ($UserSID::DATA{$name}) {
    my ($checksha, $checktime) = split(/\t/,$UserSID::DATA{$name},2);
    if ($checksha eq $sha) {
      $checktime = time;
      $UserSID::DATA{$name} = "$checksha\t$checktime";
      return &SaveSIDData($file);
    } else {
      return 0;
    }
  } else {
    return 0;
  }
}
##############################################################################
sub read {
  my $sid = shift;
  my $user = shift;
  my $file = shift || $UserSID::FILE;

  if ((not $sid) || (not $user)) {
    return 0;
  }
  if (not %UserSID::DATA) {
    &LoadSIDData($file);
  }
  if ($UserSID::DATA{$user}) {
    my ($checksha, $checktime) = split(/\t/,$UserSID::DATA{$user},2);
    $sid->{'sha'} = $checksha;
    $sid->{'time'} = $checktime;
    $sid->{'user'} = $user;
    return 1;
  } else {
    return 0;
  }
}
##############################################################################
sub update {
  my $sid = shift;
  my $file = shift || $UserSID::FILE;
  
  if ((not $sid) || (not $sid->{'user'})) {
    return 0;
  }
  $sid->{'time'} = time;
  return &AddNewSID($sid);  
}
##############################################################################
sub remove {
  my $sid = shift;
  my $file = shift || $UserSID::FILE;
  my $key;
  
  if ((not $sid) || (not $sid->{'user'})) {
    return 0;
  }
  
  if (not %UserSID::DATA) {
    &LoadSIDData($file);
  }
  
  delete $UserSID::DATA{$sid->{'user'}};  
  return &SaveSIDData($file);

}
##############################################################################
sub create {
  my $sid = shift;
  my $user = shift;
  my $string = shift || localtime;
  my $digest = shift || $UserSID::digest;
  
  if ((not $sid) || (not $user)) {
    return;
  }
  
  $sid->{'user'} = $user;
  $sid->{'time'} = time;  
  $sid->{'sha'} = &CreateKey($string,$digest);

  return &AddNewSID($sid);
}
##############################################################################
sub new {
  my $that = shift;
  my $file = shift || $UserSID::FILE;
  my $class = ref($that) || $that;
  my $self = {   };
  
  if (($file ne $UserSID::FILE) || (not %UserSID::DATA)) {
    &LoadSIDData($file);
  }
  bless $self, $class;
  return $self;
}

##############################################################################
# Privat Subroutines



( run in 2.214 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )