use Rose::Object::MakeMethods::Generic
(
scalar => [ qw(fh file_name) ],
+ 'scalar --get_set_init' => [ qw(session_id) ],
);
sub new {
my $self = $class->SUPER::new;
+ if ($params{session_id}) {
+ $self->session_id($params{session_id})
+ }
+
my $path = $self->prepare_path;
- $file_name =~ s:.*/::g;
+ $file_name =~ s{.*/}{}g;
$file_name = "${path}/${file_name}";
+ $self->file_name($file_name);
+
if ($params{mode}) {
my $mode = $params{mode};
$self->fh(IO::File->new($file_name, $mode));
}
- $self->file_name($file_name);
-
return $self;
}
+sub open {
+ my ($self, $mode) = @_;
+ return $self->fh(IO::File->new($self->file_name, $mode));
+}
+
sub exists {
my ($self) = @_;
return -f $self->file_name;
}
sub get_path {
- die "No session ID" unless $::auth->get_session_id;
- return "users/session_files/" . $::auth->get_session_id;
+ die "No session ID" unless $_[0]->session_id;
+ return "users/session_files/" . $_[0]->session_id;
}
sub prepare_path {
- my $path = get_path();
+ my $path = $_[0]->get_path;
return $path if -d $path;
mkpath $path;
die "Creating ${path} failed" unless -d $path;
return $path;
}
+sub init_session_id {
+ $::auth->get_session_id;
+}
+
sub destroy_session {
my ($class, $session_id) = @_;
it has been created for "customer.csv" then the value returned might
be C<users/session_files/e8789b98721347/customer.csv>.
+=item C<open [%params]>
+
+Opens the file_name given at creation with the given parameters.
+
=item C<exists>
Returns trueish if the file exists.
=item C<get_path>
Returns the name of the session-specific directory used for file
-storage relative to the Lx-Office installation folder.
+storage relative to the kivitendo installation folder.
=item C<prepare_path>