403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /opt/webdir/lib/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /opt/webdir/lib/bxProviders.pm
# provider options
#
package bxProviders;
use strict;
use warnings;
use Moose;
use File::Basename qw( dirname basename );
use File::Path qw(remove_tree rmtree mkpath);
use File::Spec::Functions;
use Data::Dumper;
use Output;
use bxProvider;

# basic path for site
has 'base', 	is => 'ro', default => '/opt/webdir/providers';
has 'debug', 	is => 'ro', isa => 'Int', default => 0;
has 'logfile', 	is => 'ro', isa => 'Str', default => '/opt/webdir/logs/providers.debug';

# provider's names that installed  on the server
sub listProviders{
  my ($self, $status) = @_;

  my $message_p = (caller(0))[3];
  my $message_t = __PACKAGE__;

  # return data about provider in disabled or enabled statuses
  if(not defined $status){ 
    $status = "enabled"
  }

  # returned values
  my $output = {};


  opendir(my $ph, $self->base)
    or return Output->new(
    error => 1,
    message => "$message_t: Cannot open dircetory ".$self->base.": $!",
  );

  while(my $name  = readdir($ph)){
    next if ($name =~ /^\.\.?$/);
    my $fn = catfile($self->base, $name);
    if (-d $fn){
      my $provider = bxProvider->new(
        name => $name,
        debug => $self->debug
      );

      my $provider_opt = $provider->optionsProvider();
      if ($provider_opt->is_error){
        $output->{$name} = {
          error => $provider_opt->is_error,
          message => $provider_opt->get_message,
        }
      }else{
        $output->{$name} = { status => $provider_opt->get_data->[1]->{$name}->{'status'} };
      }
    }
  }

  closedir $ph;
  return Output->new(
    error => 0,
    data  => ["providers", $output],
  );
}

# provider's names that installed  on the server
sub listOrders4Providers{
  my ($self, $status) = @_;

  my $message_p = (caller(0))[3];
  my $message_t = __PACKAGE__;

  # return data about provider in disabled or enabled statuses
  if(not defined $status){ 
    $status = "enabled"
  }

  # returned values
  my $output = {};


  opendir(my $ph, $self->base)
    or return Output->new(
    error => 1,
    message => "$message_t: Cannot open directory ".$self->base.": $!",
  );

  while(my $name  = readdir($ph)){
    next if ($name =~ /^\.\.?$/);
    my $fn = catfile($self->base, $name);
    if (-d $fn){
      my $provider = bxProvider->new(
        name => $name,
        debug => $self->debug
      );

      my $provider_opt = $provider->listOrders4Provider();
      if ($provider_opt->is_error){
        #$output->{$name} = {
        #error => $provider_opt->is_error,
        #  message => $provider_opt->get_message,
        #}
        next;
      }else{
        $output->{$name} = $provider_opt->get_data->[1]->{$name};
      }
    }
  }
  return Output->new(
    error => 0,
    data  => ["provider_order_list", $output],
  );
}


1;

Youez - 2016 - github.com/yon3zu
LinuXploit