Making WordPress.org


Ignore:
Timestamp:
05/09/2024 08:33:51 AM (19 months ago)
Author:
amieiro
Message:

Translate: Sync "Translation Events" from GitHub

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-translation-events/includes/routes/event/edit.php

    r13541 r13683  
    33namespace Wporg\TranslationEvents\Routes\Event;
    44
    5 use Wporg\TranslationEvents\Attendee\Attendee;
    6 use Wporg\TranslationEvents\Attendee\Attendee_Repository;
    75use Wporg\TranslationEvents\Event\Event_Repository_Interface;
    86use Wporg\TranslationEvents\Routes\Route;
    9 use Wporg\TranslationEvents\Stats\Stats_Calculator;
    107use Wporg\TranslationEvents\Translation_Events;
     8use Wporg\TranslationEvents\Urls;
    119
    1210/**
     
    1513class Edit_Route extends Route {
    1614    private Event_Repository_Interface $event_repository;
    17     private Attendee_Repository $attendee_repository;
    1815
    1916    public function __construct() {
    2017        parent::__construct();
    21         $this->event_repository    = Translation_Events::get_event_repository();
    22         $this->attendee_repository = Translation_Events::get_attendee_repository();
     18        $this->event_repository = Translation_Events::get_event_repository();
    2319    }
    2420
     
    2925            exit;
    3026        }
    31         $event    = $this->event_repository->get_event( $event_id );
    32         $attendee = $this->attendee_repository->get_attendee( $event->id(), get_current_user_id() );
    3327
    34         if ( ! $event || ! ( ( $attendee instanceof Attendee && $attendee->is_host() ) || current_user_can( 'edit_post', $event->id() ) || $event->author_id() === get_current_user_id() ) ) {
    35             $this->die_with_error( esc_html__( 'Event does not exist, or you do not have permission to edit it.', 'gp-translation-events' ), 403 );
     28        $event = $this->event_repository->get_event( $event_id );
     29        if ( ! $event ) {
     30            $this->die_with_404();
    3631        }
    37         if ( 'trash' === $event->status() ) {
    38             $this->die_with_error( esc_html__( 'You cannot edit a trashed event', 'gp-translation-events' ), 403 );
     32
     33        if ( ! current_user_can( 'edit_translation_event', $event->id() ) ) {
     34            $this->die_with_error( esc_html__( 'You do not have permission to edit this event.', 'gp-translation-events' ), 403 );
    3935        }
    4036
    4137        include ABSPATH . 'wp-admin/includes/post.php';
    42         $event_page_title              = 'Edit Event';
    43         $event_form_name               = 'edit_event';
    44         $css_show_url                  = '';
    45         $event_title                   = $event->title();
    46         $event_description             = $event->description();
    47         $event_status                  = $event->status();
    48         list( $permalink, $post_name ) = get_sample_permalink( $event->id() );
    49         $permalink                     = str_replace( '%pagename%', $post_name, $permalink );
    50         $event_url                     = get_site_url() . gp_url( wp_make_link_relative( $permalink ) );
    51         $event_timezone                = $event->timezone();
    52         $event_start                   = $event->start();
    53         $event_end                     = $event->end();
    54         $create_delete_button          = false;
    55         $visibility_delete_button      = 'inline-flex';
    56 
    57         if ( $event->end()->is_in_the_past() ) {
    58             $this->die_with_error( esc_html__( 'You cannot edit a past event.', 'gp-translation-events' ), 403 );
    59         }
    60 
    61         $stats_calculator = new Stats_Calculator();
    62 
    63         if ( $stats_calculator->event_has_stats( $event->id() ) ) {
    64             $this->die_with_error( esc_html__( 'You cannot edit an event with translations.', 'gp-translation-events' ), 403 );
    65         }
    66 
    67         if ( ! $stats_calculator->event_has_stats( $event->id() ) ) {
    68             $current_user = wp_get_current_user();
    69             if ( ( $current_user->ID === $event->author_id() || ( $attendee instanceof Attendee && $attendee->is_host() ) || current_user_can( 'manage_options' ) ) && ! $event->end()->is_in_the_past() ) {
    70                 $create_delete_button = true;
    71             }
    72         }
     38        $event_page_title        = 'Edit Event';
     39        $event_form_name         = 'edit_event';
     40        $css_show_url            = '';
     41        $event_title             = $event->title();
     42        $event_description       = $event->description();
     43        $event_status            = $event->status();
     44        $event_url               = Urls::event_details_absolute( $event_id );
     45        $event_timezone          = $event->timezone();
     46        $event_start             = $event->start();
     47        $event_end               = $event->end();
     48        $event_slug              = $event->slug();
     49        $create_trash_button     = current_user_can( 'trash_translation_event', $event->id() );
     50        $visibility_trash_button = 'inline-flex';
    7351
    7452        $this->tmpl( 'events-form', get_defined_vars() );
Note: See TracChangeset for help on using the changeset viewer.