kopia lustrzana https://github.com/pixelfed/pixelfed
				
				
				
			
		
			
				
	
	
		
			101 wiersze
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			101 wiersze
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
| <?php
 | |
| 
 | |
| namespace App\Mail;
 | |
| 
 | |
| use Illuminate\Bus\Queueable;
 | |
| use Illuminate\Contracts\Queue\ShouldQueue;
 | |
| use Illuminate\Mail\Mailable;
 | |
| use Illuminate\Mail\Mailables\Content;
 | |
| use Illuminate\Mail\Mailables\Envelope;
 | |
| use Illuminate\Queue\SerializesModels;
 | |
| use App\Services\AccountService;
 | |
| use App\Services\StatusService;
 | |
| 
 | |
| class AdminNewReport extends Mailable
 | |
| {
 | |
|     use Queueable, SerializesModels;
 | |
| 
 | |
|     public $report;
 | |
| 
 | |
|     /**
 | |
|      * Create a new message instance.
 | |
|      *
 | |
|      * @return void
 | |
|      */
 | |
|     public function __construct($report)
 | |
|     {
 | |
|         $this->report = $report;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the message envelope.
 | |
|      *
 | |
|      * @return \Illuminate\Mail\Mailables\Envelope
 | |
|      */
 | |
|     public function envelope()
 | |
|     {
 | |
|     	$type = $this->report->type;
 | |
|     	$id = $this->report->id;
 | |
|     	$object_type = last(explode("\\", $this->report->object_type));
 | |
|         return new Envelope(
 | |
|             subject: '[' . config('pixelfed.domain.app') . '] ' . $object_type . ' Report (Ref: report-' . $id . '-' . $type . ')',
 | |
|         );
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the message content definition.
 | |
|      *
 | |
|      * @return \Illuminate\Mail\Mailables\Content
 | |
|      */
 | |
|     public function content()
 | |
|     {
 | |
|     	$report = $this->report;
 | |
|     	$object_type = last(explode("\\", $this->report->object_type));
 | |
|     	$reporter = AccountService::get($report->profile_id, true);
 | |
|     	$reported = AccountService::get($report->reported_profile_id, true);
 | |
|     	$title = 'New ' . $object_type . ' Report (#' . $report->id . ')';
 | |
|     	$reportUrl = url('/i/admin/reports/show/' . $report->id . '?ref=email');
 | |
|     	$data = [
 | |
|     		'report' => $report,
 | |
|     		'object_type' => $object_type,
 | |
|     		'title' => $title,
 | |
|     		'reporter' => $reporter,
 | |
|     		'reported' => $reported,
 | |
|     		'url' => $reportUrl,
 | |
|     		'message' => 'You have a new moderation report.'
 | |
|     	];
 | |
| 
 | |
|     	if($object_type === 'Status') {
 | |
|     		$data['reported_status'] = StatusService::get($report['object_id'], false);
 | |
|     		if($reporter && $reported) {
 | |
|     			$data['message'] = '<a href="' .  url('/i/web/profile/' . $reporter['id']) . '">@' .
 | |
| 	    			$reporter['acct'] . '</a> reported a post by <a href="' . url('/i/web/profile/' . $reported['id']) .
 | |
| 	    			'">@' . $reported['acct'] . '</a> as ' . $report->type . '.';
 | |
|     		}
 | |
|     	}
 | |
| 
 | |
|     	if($object_type === 'Profile') {
 | |
|     		if($reporter && $reported) {
 | |
|     		$data['message'] = '<a href="' .  url('/i/web/profile/' . $reporter['id']) . '">@' .
 | |
|     			$reporter['acct'] . '</a> reported <a href="' . url('/i/web/profile/' . $reported['id']) .
 | |
|     			'">@' . $reported['acct'] . '</a>\'s profile as ' . $report->type . '.';
 | |
|     		}
 | |
|     	}
 | |
| 
 | |
|         return new Content(
 | |
|             markdown: 'emails.admin.new_report',
 | |
|             with: $data
 | |
|         );
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the attachments for the message.
 | |
|      *
 | |
|      * @return array
 | |
|      */
 | |
|     public function attachments()
 | |
|     {
 | |
|         return [];
 | |
|     }
 | |
| }
 |