Changeset 13683 for sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-translation-events/includes/routes/event/edit.php
- Timestamp:
- 05/09/2024 08:33:51 AM (19 months ago)
- 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 3 3 namespace Wporg\TranslationEvents\Routes\Event; 4 4 5 use Wporg\TranslationEvents\Attendee\Attendee;6 use Wporg\TranslationEvents\Attendee\Attendee_Repository;7 5 use Wporg\TranslationEvents\Event\Event_Repository_Interface; 8 6 use Wporg\TranslationEvents\Routes\Route; 9 use Wporg\TranslationEvents\Stats\Stats_Calculator;10 7 use Wporg\TranslationEvents\Translation_Events; 8 use Wporg\TranslationEvents\Urls; 11 9 12 10 /** … … 15 13 class Edit_Route extends Route { 16 14 private Event_Repository_Interface $event_repository; 17 private Attendee_Repository $attendee_repository;18 15 19 16 public function __construct() { 20 17 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(); 23 19 } 24 20 … … 29 25 exit; 30 26 } 31 $event = $this->event_repository->get_event( $event_id );32 $attendee = $this->attendee_repository->get_attendee( $event->id(), get_current_user_id() );33 27 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(); 36 31 } 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 ); 39 35 } 40 36 41 37 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'; 73 51 74 52 $this->tmpl( 'events-form', get_defined_vars() );
Note: See TracChangeset
for help on using the changeset viewer.