Making WordPress.org


Ignore:
Timestamp:
05/09/2024 08:33:51 AM (2 years 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.