소스 검색

Bump laravel, v9 => v10

Daniel Supernault 2 년 전
부모
커밋
b1f95a7213

+ 4 - 1
app/AccountInterstitial.php

@@ -11,7 +11,10 @@ class AccountInterstitial extends Model
 	*
 	* @var array
 	*/
-	protected $dates = ['read_at', 'appeal_requested_at'];
+	protected $casts = [
+		'read_at' => 'datetime',
+		'appeal_requested_at' => 'datetime'
+	];
 
 	public const JSON_MESSAGE = 'Please use web browser to proceed.';
 

+ 4 - 1
app/Activity.php

@@ -6,7 +6,10 @@ use Illuminate\Database\Eloquent\Model;
 
 class Activity extends Model
 {
-    protected $dates = ['processed_at'];
+    protected $casts = [
+    	'processed_at' => 'datetime'
+    ];
+
     protected $fillable = ['data', 'to_id', 'from_id', 'object_type'];
 
 	public function toProfile()

+ 4 - 4
app/Avatar.php

@@ -14,10 +14,10 @@ class Avatar extends Model
      *
      * @var array
      */
-    protected $dates = [
-        'deleted_at',
-        'last_fetched_at',
-        'last_processed_at'
+    protected $casts = [
+        'deleted_at' => 'datetime',
+        'last_fetched_at' => 'datetime',
+        'last_processed_at' => 'datetime'
     ];
     
     protected $guarded = [];

+ 1 - 1
app/Console/Commands/VideoThumbnail.php

@@ -46,7 +46,7 @@ class VideoThumbnail extends Command
                         ->take($limit)
                         ->get();
         foreach($videos as $video) {
-            Pipeline::dispatchNow($video);
+            Pipeline::dispatchSync($video);
         }
     }
 }

+ 1 - 1
app/Http/Controllers/ContactController.php

@@ -46,7 +46,7 @@ class ContactController extends Controller
 		$contact->response = '';
 		$contact->save();
 
-		ContactPipeline::dispatchNow($contact);
+		ContactPipeline::dispatchSync($contact);
 
 		return redirect()->back()->with('status', 'Success - Your message has been sent to admins.');
 	}

+ 1 - 1
app/Jobs/DeletePipeline/DeleteAccountPipeline.php

@@ -80,7 +80,7 @@ class DeleteAccountPipeline implements ShouldQueue
 		$id = $user->profile_id;
 		Status::whereProfileId($id)->chunk(50, function($statuses) {
             foreach($statuses as $status) {
-                StatusDelete::dispatchNow($status);
+                StatusDelete::dispatchSync($status);
             }
         });
 

+ 1 - 1
app/Jobs/StatusPipeline/StatusDelete.php

@@ -95,7 +95,7 @@ class StatusDelete implements ShouldQueue
         Media::whereStatusId($status->id)
         ->get()
         ->each(function($media) {
-            MediaDeletePipeline::dispatchNow($media);
+            MediaDeletePipeline::dispatchSync($media);
         });
 
 		if($status->in_reply_to_id) {

+ 4 - 1
app/Like.php

@@ -16,7 +16,10 @@ class Like extends Model
      *
      * @var array
      */
-    protected $dates = ['deleted_at'];
+    protected $casts = [
+    	'deleted_at' => 'datetime'
+    ];
+
     protected $fillable = ['profile_id', 'status_id', 'status_profile_id'];
 
     public function actor()

+ 2 - 3
app/Media.php

@@ -17,12 +17,11 @@ class Media extends Model
      *
      * @var array
      */
-    protected $dates = ['deleted_at'];
-
     protected $guarded = [];
 
     protected $casts = [
-    	'srcset' => 'array'
+    	'srcset' => 'array',
+    	'deleted_at' => 'datetime'
     ];
 
     public function status()

+ 3 - 1
app/Mention.php

@@ -14,7 +14,9 @@ class Mention extends Model
      *
      * @var array
      */
-    protected $dates = ['deleted_at'];
+    protected $casts = [
+    	'deleted_at' => 'datetime'
+    ];
 
     protected $guarded = [];
 

+ 3 - 1
app/Newsroom.php

@@ -9,7 +9,9 @@ class Newsroom extends Model
     protected $table = 'newsroom';
     protected $fillable = ['title'];
 
-    protected $dates = ['published_at'];
+    protected $casts = [
+    	'published_at' => 'datetime'
+    ];
 
     public function permalink()
     {

+ 3 - 1
app/Notification.php

@@ -14,7 +14,9 @@ class Notification extends Model
      *
      * @var array
      */
-    protected $dates = ['deleted_at'];
+    protected $casts = [
+    	'deleted_at' => 'datetime'
+    ];
 
     protected $guarded = [];
 

+ 4 - 4
app/Profile.php

@@ -19,10 +19,10 @@ class Profile extends Model
 	 */
 	public $incrementing = false;
 
-	protected $dates = [
-		'deleted_at',
-		'last_fetched_at',
-		'last_status_at'
+	protected $casts = [
+		'deleted_at' => 'datetime',
+		'last_fetched_at' => 'datetime',
+		'last_status_at' => 'datetime'
 	];
 	protected $hidden = ['private_key'];
 	protected $visible = ['id', 'user_id', 'username', 'name'];

+ 3 - 1
app/Report.php

@@ -6,7 +6,9 @@ use Illuminate\Database\Eloquent\Model;
 
 class Report extends Model
 {
-    protected $dates = ['admin_seen'];
+    protected $casts = [
+    	'admin_seen' => 'datetime'
+    ];
 
     protected $guarded = [];
 

+ 3 - 1
app/Status.php

@@ -26,7 +26,9 @@ class Status extends Model
 	 *
 	 * @var array
 	 */
-	protected $dates = ['deleted_at'];
+	protected $casts = [
+		'deleted_at' => 'datetime'
+	];
 
 	protected $guarded = [];
 

+ 3 - 1
app/StoryItem.php

@@ -22,7 +22,9 @@ class StoryItem extends Model
 	*
 	* @var array
 	*/
-	protected $dates = ['expires_at'];
+	protected $casts = [
+		'expires_at' => 'datetime'
+	];
 
 	protected $visible = ['id'];
 

+ 5 - 1
app/User.php

@@ -17,7 +17,11 @@ class User extends Authenticatable
      *
      * @var array
      */
-    protected $dates = ['deleted_at', 'email_verified_at', '2fa_setup_at'];
+    protected $casts = [
+    	'deleted_at' => 'datetime',
+    	'email_verified_at' => 'datetime',
+    	'2fa_setup_at' => 'datetime'
+    ];
 
     /**
      * The attributes that are mass assignable.

+ 1 - 1
app/Util/ActivityPub/Inbox.php

@@ -178,7 +178,7 @@ class Inbox
 
 		switch($obj['type']) {
 			case 'Story':
-				StoryFetch::dispatchNow($this->payload);
+				StoryFetch::dispatchSync($this->payload);
 			break;
 		}
 

+ 118 - 156
config/purify.php

@@ -1,182 +1,144 @@
 <?php
 
+use Stevebauman\Purify\Definitions\Html5Definition;
+
 return [
 
     /*
     |--------------------------------------------------------------------------
-    | Settings
+    | Default Config
     |--------------------------------------------------------------------------
     |
-    | The configuration settings array is passed directly to HTMLPurifier.
+    | This option defines the default config that is provided to HTMLPurifier.
     |
-    | Feel free to add / remove / customize these attributes as you wish.
+    */
+
+    'default' => 'default',
+
+    /*
+    |--------------------------------------------------------------------------
+    | Config sets
+    |--------------------------------------------------------------------------
+    |
+    | Here you may configure various sets of configuration for differentiated use of HTMLPurifier.
+    | A specific set of configuration can be applied by calling the "config($name)" method on
+    | a Purify instance. Feel free to add/remove/customize these attributes as you wish.
     |
     | Documentation: http://htmlpurifier.org/live/configdoc/plain.html
     |
+    |   Core.Encoding               The encoding to convert input to.
+    |   HTML.Doctype                Doctype to use during filtering.
+    |   HTML.Allowed                The allowed HTML Elements with their allowed attributes.
+    |   HTML.ForbiddenElements      The forbidden HTML elements. Elements that are listed in this
+    |                               string will be removed, however their content will remain.
+    |   CSS.AllowedProperties       The Allowed CSS properties.
+    |   AutoFormat.AutoParagraph    Newlines are converted in to paragraphs whenever possible.
+    |   AutoFormat.RemoveEmpty      Remove empty elements that contribute no semantic information to the document.
+    |
     */
 
-    'settings' => [
-
-        /*
-        |--------------------------------------------------------------------------
-        | Core.Encoding
-        |--------------------------------------------------------------------------
-        |
-        | The encoding to convert input to.
-        |
-        | http://htmlpurifier.org/live/configdoc/plain.html#Core.Encoding
-        |
-        */
-
-        'Core.Encoding' => 'utf-8',
-
-        /*
-        |--------------------------------------------------------------------------
-        | Core.SerializerPath
-        |--------------------------------------------------------------------------
-        |
-        | The HTML purifier serializer cache path.
-        |
-        | http://htmlpurifier.org/live/configdoc/plain.html#Cache.SerializerPath
-        |
-        */
-
-        'Cache.SerializerPath' => storage_path('purify'),
-
-        /*
-        |--------------------------------------------------------------------------
-        | HTML.Doctype
-        |--------------------------------------------------------------------------
-        |
-        | Doctype to use during filtering.
-        |
-        | http://htmlpurifier.org/live/configdoc/plain.html#HTML.Doctype
-        |
-        */
-
-        'HTML.Doctype' => 'XHTML 1.0 Transitional',
-
-        /*
-        |--------------------------------------------------------------------------
-        | HTML.Allowed
-        |--------------------------------------------------------------------------
-        |
-        | The allowed HTML Elements with their allowed attributes.
-        |
-        | http://htmlpurifier.org/live/configdoc/plain.html#HTML.Allowed
-        |
-        */
-
-        'HTML.Allowed' => env('RESTRICT_HTML_TYPES', true) ? 
-            'a[href|title|rel|class],p[class],span[class],br' :
-            'a[href|title|rel|class],p[class],span[class],strong,em,del,b,i,s,strike,h1,h2,h3,h4,h5,h6,ul,ol,li,br',
+    'configs' => [
 
+        'default' => [
+            'Core.Encoding' => 'utf-8',
+            'HTML.Doctype' => 'HTML 4.01 Transitional',
 
-        /*
-        |--------------------------------------------------------------------------
-        | HTML.ForbiddenElements
-        |--------------------------------------------------------------------------
-        |
-        | The forbidden HTML elements. Elements that are listed in
-        | this string will be removed, however their content will remain.
-        |
-        | For example if 'p' is inside the string, the string: '<p>Test</p>',
-        |
-        | Will be cleaned to: 'Test'
-        |
-        | http://htmlpurifier.org/live/configdoc/plain.html#HTML.ForbiddenElements
-        |
-        */
-
-        'HTML.ForbiddenElements' => '',
-
-        /*
-        |--------------------------------------------------------------------------
-        | CSS.AllowedProperties
-        |--------------------------------------------------------------------------
-        |
-        | The Allowed CSS properties.
-        |
-        | http://htmlpurifier.org/live/configdoc/plain.html#CSS.AllowedProperties
-        |
-        */
-
-        'CSS.AllowedProperties' => '',
-
-        /*
-        |--------------------------------------------------------------------------
-        | AutoFormat.AutoParagraph
-        |--------------------------------------------------------------------------
-        |
-        | The Allowed CSS properties.
-        |
-        | This directive turns on auto-paragraphing, where double
-        | newlines are converted in to paragraphs whenever possible.
-        |
-        | http://htmlpurifier.org/live/configdoc/plain.html#AutoFormat.AutoParagraph
-        |
-        */
-
-        'AutoFormat.AutoParagraph' => false,
-
-        /*
-        |--------------------------------------------------------------------------
-        | AutoFormat.RemoveEmpty
-        |--------------------------------------------------------------------------
-        |
-        | When enabled, HTML Purifier will attempt to remove empty
-        | elements that contribute no semantic information to the document.
-        |
-        | http://htmlpurifier.org/live/configdoc/plain.html#AutoFormat.RemoveEmpty
-        |
-        */
-
-        'AutoFormat.RemoveEmpty' => false,
-
-        'Attr.AllowedClasses' => [
-            'h-feed',
-            'h-entry',
-            'h-cite',
-            'h-card',
-            'p-author',
-            'p-name',
-            'p-in-reply-to',
-            'p-repost-of',
-            'p-comment',
-            'u-photo',
-            'u-uid',
-            'u-url',
-            'dt-published',
-            'e-content',
-            'mention',
-            'hashtag',
-            'ellipsis',
-            'invisible'
-        ],
+            'HTML.Allowed' => env('RESTRICT_HTML_TYPES', true) ?
+            'a[href|title|rel|class],p[class],span[class],br' :
+            'a[href|title|rel|class],p[class],span[class],strong,em,del,b,i,s,strike,h1,h2,h3,h4,h5,h6,ul,ol,li,br',
 
-        'Attr.AllowedRel' => [
-            'noreferrer',
-            'noopener',
-            'nofollow'
+            'HTML.ForbiddenElements' => '',
+            'CSS.AllowedProperties' => '',
+
+            'AutoFormat.AutoParagraph' => false,
+            'AutoFormat.RemoveEmpty' => false,
+
+            'Attr.AllowedClasses' => [
+	            'h-feed',
+	            'h-entry',
+	            'h-cite',
+	            'h-card',
+	            'p-author',
+	            'p-name',
+	            'p-in-reply-to',
+	            'p-repost-of',
+	            'p-comment',
+	            'u-photo',
+	            'u-uid',
+	            'u-url',
+	            'dt-published',
+	            'e-content',
+	            'mention',
+	            'hashtag',
+	            'ellipsis',
+	            'invisible'
+	        ],
+
+	        'Attr.AllowedRel' => [
+	            'noreferrer',
+	            'noopener',
+	            'nofollow'
+	        ],
+
+	        'HTML.TargetBlank' => true,
+
+	        'HTML.Nofollow' => true,
+
+	        'URI.DefaultScheme' => 'https',
+
+	        'URI.DisableExternalResources' => true,
+
+	        'URI.DisableResources' => true,
+
+	        'URI.AllowedSchemes' => [
+	            'http' => true,
+	            'https' => true,
+	        ],
+
+	        'URI.HostBlacklist' => config('costar.enabled') ? config('costar.domain.block') : [],
         ],
 
-        'HTML.TargetBlank' => true,
-
-        'HTML.Nofollow' => true,
-
-        'URI.DefaultScheme' => 'https',
-
-        'URI.DisableExternalResources' => true,
+    ],
 
-        'URI.DisableResources' => true,
+    /*
+    |--------------------------------------------------------------------------
+    | HTMLPurifier definitions
+    |--------------------------------------------------------------------------
+    |
+    | Here you may specify a class that augments the HTML definitions used by
+    | HTMLPurifier. Additional HTML5 definitions are provided out of the box.
+    | When specifying a custom class, make sure it implements the interface:
+    |
+    |   \Stevebauman\Purify\Definitions\Definition
+    |
+    | Note that these definitions are applied to every Purifier instance.
+    |
+    | Documentation: http://htmlpurifier.org/docs/enduser-customize.html
+    |
+    */
 
-        'URI.AllowedSchemes' => [
-            'http' => true,
-            'https' => true,
-        ],
+    'definitions' => Html5Definition::class,
 
-        'URI.HostBlacklist' => config('costar.enabled') ? config('costar.domain.block') : [],
+    /*
+    |--------------------------------------------------------------------------
+    | Serializer
+    |--------------------------------------------------------------------------
+    |
+    | The storage implementation where HTMLPurifier can store its serializer files.
+    | If the filesystem cache is in use, the path must be writable through the
+    | storage disk by the web server, otherwise an exception will be thrown.
+    |
+    */
 
+    'serializer' => [
+        'driver' => env('CACHE_DRIVER', 'file'),
+        'cache' => \Stevebauman\Purify\Cache\CacheDefinitionCache::class,
     ],
 
+    // 'serializer' => [
+    //    'disk' => env('FILESYSTEM_DISK', 'local'),
+    //    'path' => 'purify',
+    //    'cache' => \Stevebauman\Purify\Cache\FilesystemDefinitionCache::class,
+    // ],
+
 ];