diff --git a/app/Auth/NexusWebUserProvider.php b/app/Auth/NexusWebUserProvider.php index e4a4a751..a2a4f9f8 100644 --- a/app/Auth/NexusWebUserProvider.php +++ b/app/Auth/NexusWebUserProvider.php @@ -77,7 +77,11 @@ class NexusWebUserProvider implements UserProvider public function validateCredentials(Authenticatable $user, array $credentials) { if ($credentials["c_secure_login"] == base64("yeah")) { - if ($credentials["c_secure_pass"] != md5($user->passhash . getip())) { + /** + * Not IP related + * @since 1.8.0 + */ + if ($credentials["c_secure_pass"] != md5($user->passhash)) { return false; } } else { diff --git a/app/Filament/Resources/System/PluginResource.php b/app/Filament/Resources/System/PluginResource.php index 50c122df..b733d17e 100644 --- a/app/Filament/Resources/System/PluginResource.php +++ b/app/Filament/Resources/System/PluginResource.php @@ -35,12 +35,14 @@ class PluginResource extends Resource return self::getNavigationLabel(); } + protected static bool $shouldRegisterNavigation = false; + public static function form(Form $form): Form { return $form ->schema([ - Forms\Components\TextInput::make('package_name')->label(__('label.plugin.package_name')), - Forms\Components\TextInput::make('remote_url')->label(__('label.plugin.remote_url')), + Forms\Components\TextInput::make('package_name')->label(__('plugin.labels.package_name')), + Forms\Components\TextInput::make('remote_url')->label(__('plugin.labels.remote_url')), ]); } diff --git a/app/Models/User.php b/app/Models/User.php index e6f21f62..aaf4ee4f 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -82,6 +82,16 @@ class User extends Authenticatable implements FilamentUser, HasName self::DONATE_NO => ['text' => 'No'], ]; + const GENDER_FEMALE = 'Female'; + const GENDER_MALE = 'Male'; + const GENDER_UNKNOWN = 'N/A'; + + public static array $genders = [ + self::GENDER_MALE => 'Male', + self::GENDER_FEMALE => 'Female', + self::GENDER_UNKNOWN => 'N/A', + ]; + public static array $cardTitles = [ 'uploaded_human' => '上传量', 'downloaded_human' => '下载量', @@ -269,12 +279,16 @@ class User extends Authenticatable implements FilamentUser, HasName public function getLocaleAttribute() { - $locale = Locale::getLocaleFromCookie(); - $log = "locale from cookie: $locale"; + $locale = null; + $log = "user: " . $this->id; + if (get_user_id() == $this->id) { + $locale = Locale::getLocaleFromCookie(); + $log .= ", locale from cookie: $locale"; + } if (!$locale) { $lang = $this->language->site_lang_folder; $locale = Locale::$languageMaps[$lang] ?? 'en'; - $log .= ", [NO_DATA], lang from database: $lang, locale: $locale"; + $log .= ", [NO_DATA_FROM_COOKIE], lang from database: $lang, locale: $locale"; } do_log($log); return $locale; @@ -303,6 +317,13 @@ class User extends Authenticatable implements FilamentUser, HasName ); } + protected function genderText(): Attribute + { + return new Attribute( + get: fn($value, $attributes) => nexus_trans('user.genders.' . $attributes['gender']) + ); + } + public static function getMinSeedPoints($class) { $setting = Setting::get("account.{$class}_min_seed_points"); diff --git a/app/Policies/CodecPolicy.php b/app/Policies/CodecPolicy.php new file mode 100644 index 00000000..251d2b5b --- /dev/null +++ b/app/Policies/CodecPolicy.php @@ -0,0 +1,102 @@ +can($user); + } + + /** + * Determine whether the user can view the model. + * + * @param \App\Models\User $user + * @param \App\Models\Codec $codec + * @return \Illuminate\Auth\Access\Response|bool + */ + public function view(User $user, Codec $codec) + { + return $this->can($user); + } + + /** + * Determine whether the user can create models. + * + * @param \App\Models\User $user + * @return \Illuminate\Auth\Access\Response|bool + */ + public function create(User $user) + { + return $this->can($user); + } + + /** + * Determine whether the user can update the model. + * + * @param \App\Models\User $user + * @param \App\Models\Codec $codec + * @return \Illuminate\Auth\Access\Response|bool + */ + public function update(User $user, Codec $codec) + { + return $this->can($user); + } + + /** + * Determine whether the user can delete the model. + * + * @param \App\Models\User $user + * @param \App\Models\Codec $codec + * @return \Illuminate\Auth\Access\Response|bool + */ + public function delete(User $user, Codec $codec) + { + return $this->can($user); + } + + /** + * Determine whether the user can restore the model. + * + * @param \App\Models\User $user + * @param \App\Models\Codec $codec + * @return \Illuminate\Auth\Access\Response|bool + */ + public function restore(User $user, Codec $codec) + { + + } + + /** + * Determine whether the user can permanently delete the model. + * + * @param \App\Models\User $user + * @param \App\Models\Codec $codec + * @return \Illuminate\Auth\Access\Response|bool + */ + public function forceDelete(User $user, Codec $codec) + { + // + } + + private function can(User $user) + { + if ($user->class >= User::CLASS_SYSOP) { + return true; + } + return false; + } +} diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index af0d6b0f..1a716d36 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -4,13 +4,23 @@ namespace App\Providers; use App\Auth\NexusWebGuard; use App\Auth\NexusWebUserProvider; -use App\Models\Permission; -use App\Models\Role; +use App\Models\AudioCodec; +use App\Models\Category; +use App\Models\Codec; +use App\Models\Icon; +use App\Models\Media; +use App\Models\Plugin; +use App\Models\Processing; +use App\Models\SearchBox; +use App\Models\SecondIcon; +use App\Models\Source; +use App\Models\Standard; +use App\Models\Team; use App\Models\User; +use App\Policies\CodecPolicy; use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; -use Illuminate\Support\Facades\Gate; class AuthServiceProvider extends ServiceProvider { @@ -20,7 +30,20 @@ class AuthServiceProvider extends ServiceProvider * @var array */ protected $policies = [ - // 'App\Models\Model' => 'App\Policies\ModelPolicy', + SearchBox::class => CodecPolicy::class, + Category::class => CodecPolicy::class, + Icon::class => CodecPolicy::class, + SecondIcon::class => CodecPolicy::class, + + Codec::class => CodecPolicy::class, + AudioCodec::class => CodecPolicy::class, + Source::class => CodecPolicy::class, + Media::class => CodecPolicy::class, + Standard::class => CodecPolicy::class, + Team::class => CodecPolicy::class, + Processing::class => CodecPolicy::class, + + Plugin::class => CodecPolicy::class, ]; /** @@ -58,7 +81,11 @@ class AuthServiceProvider extends ServiceProvider return null; } if ($cookie["c_secure_login"] == base64("yeah")) { - if ($cookie["c_secure_pass"] != md5($user->passhash . getip())) { + /** + * Not IP related + * @since 1.8.0 + */ + if ($cookie["c_secure_pass"] != md5($user->passhash)) { return null; } } else { diff --git a/app/Repositories/DashboardRepository.php b/app/Repositories/DashboardRepository.php index 74a8a268..40018689 100644 --- a/app/Repositories/DashboardRepository.php +++ b/app/Repositories/DashboardRepository.php @@ -177,6 +177,9 @@ class DashboardRepository extends BaseRepository $statGender = User::query()->groupBy('gender')->selectRaw('gender, count(*) as counts')->get()->pluck('counts','gender'); foreach ($statGender as $gender => $value) { + if (!isset(User::$genders[$gender])) { + $gender = User::GENDER_UNKNOWN; + } $name = "gender_$gender"; $result[$name] = [ 'name' => $name, diff --git a/app/Repositories/HitAndRunRepository.php b/app/Repositories/HitAndRunRepository.php index ac61a67c..607a9a5d 100644 --- a/app/Repositories/HitAndRunRepository.php +++ b/app/Repositories/HitAndRunRepository.php @@ -360,7 +360,9 @@ class HitAndRunRepository extends BaseRepository } $users = User::query() ->with('language') + ->where('class', '<', User::CLASS_VIP) ->where('enabled', User::ENABLED_YES) + ->where('donor', 'no') ->find($result->pluck('uid')->toArray(), ['id', 'username', 'lang']); do_log("$logPrefix, Going to disable user: " . json_encode($users->toArray())); foreach ($users as $user) { diff --git a/app/Repositories/UserRepository.php b/app/Repositories/UserRepository.php index f09af9c9..c1d4183a 100644 --- a/app/Repositories/UserRepository.php +++ b/app/Repositories/UserRepository.php @@ -468,9 +468,22 @@ class UserRepository extends BaseRepository public function addMeta($user, array $metaData, array $keyExistsUpdates = []) { $user = $this->getUser($user); + $locale = $user->locale; $metaKey = $metaData['meta_key']; + $metaName = nexus_trans("label.user_meta.meta_keys.$metaKey", [], $locale); $allowMultiple = UserMeta::$metaKeys[$metaKey]['multiple']; - $log = "user: {$user->id}, metaKey: $metaKey, allowMultiple: $allowMultiple"; + $log = "user: {$user->id}, locale: $locale, metaKey: $metaKey, allowMultiple: $allowMultiple"; + $message = [ + 'receiver' => $user->id, + 'added' => now(), + 'subject' => nexus_trans('user.grant_props_notification.subject', ['name' => $metaName], $locale), + ]; + if (!empty($keyExistsUpdates['duration']) && $metaKey != UserMeta::META_KEY_CHANGE_USERNAME) { + $durationText = $keyExistsUpdates['duration'] . " Days"; + } else { + $durationText = nexus_trans('label.permanent', [], $locale); + } + $message['msg'] = nexus_trans('user.grant_props_notification.body', ['name' => $metaName, 'operator' => Auth::user()->username, 'duration' => $durationText], $locale); if ($allowMultiple) { //Allow multiple, just insert $result = $user->metas()->create($metaData); @@ -503,6 +516,7 @@ class UserRepository extends BaseRepository } if ($result) { clear_user_cache($user->id, $user->passkey); + Message::query()->insert($message); } do_log($log); return $result; diff --git a/composer.json b/composer.json index 928c72e6..6682615c 100644 --- a/composer.json +++ b/composer.json @@ -35,7 +35,7 @@ "ext-zend-opcache": "*", "doctrine/dbal": "^3.1", "elasticsearch/elasticsearch": "^7.16", - "filament/filament": "2.16.36", + "filament/filament": "2.16.41", "flowframe/laravel-trend": "^0.1.1", "fruitcake/laravel-cors": "^2.0", "geoip2/geoip2": "~2.0", diff --git a/composer.lock b/composer.lock index 3cba1621..299d6684 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "a75d431e4eec2207077681d0d1809797", + "content-hash": "2b6821efa51f27c9ade92f13af23c187", "packages": [ { "name": "akaunting/laravel-money", @@ -495,16 +495,16 @@ }, { "name": "danharrin/date-format-converter", - "version": "v0.2.0", + "version": "v0.3.0", "source": { "type": "git", "url": "https://github.com/danharrin/date-format-converter.git", - "reference": "ee448ab0cbe2ea36edb886a01670fc760e388f19" + "reference": "42b6ddc52059d4ba228a67c15adaaa0c039e75f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/danharrin/date-format-converter/zipball/ee448ab0cbe2ea36edb886a01670fc760e388f19", - "reference": "ee448ab0cbe2ea36edb886a01670fc760e388f19", + "url": "https://api.github.com/repos/danharrin/date-format-converter/zipball/42b6ddc52059d4ba228a67c15adaaa0c039e75f2", + "reference": "42b6ddc52059d4ba228a67c15adaaa0c039e75f2", "shasum": "" }, "require": { @@ -542,7 +542,7 @@ "type": "github" } ], - "time": "2021-02-10T23:58:47+00:00" + "time": "2022-09-29T07:48:20+00:00" }, { "name": "danharrin/livewire-rate-limiting", @@ -600,16 +600,16 @@ }, { "name": "dflydev/dot-access-data", - "version": "v3.0.1", + "version": "v3.0.2", "source": { "type": "git", "url": "https://github.com/dflydev/dflydev-dot-access-data.git", - "reference": "0992cc19268b259a39e86f296da5f0677841f42c" + "reference": "f41715465d65213d644d3141a6a93081be5d3549" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/0992cc19268b259a39e86f296da5f0677841f42c", - "reference": "0992cc19268b259a39e86f296da5f0677841f42c", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549", + "reference": "f41715465d65213d644d3141a6a93081be5d3549", "shasum": "" }, "require": { @@ -620,7 +620,7 @@ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", "scrutinizer/ocular": "1.6.0", "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "^3.14" + "vimeo/psalm": "^4.0.0" }, "type": "library", "extra": { @@ -669,9 +669,9 @@ ], "support": { "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", - "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.1" + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2" }, - "time": "2021-08-13T13:06:58+00:00" + "time": "2022-10-27T11:44:00+00:00" }, { "name": "doctrine/cache", @@ -1483,16 +1483,16 @@ }, { "name": "filament/filament", - "version": "v2.16.36", + "version": "v2.16.41", "source": { "type": "git", "url": "https://github.com/filamentphp/admin.git", - "reference": "35e9087768d11c3ca751551a5a9d9ce52f222cc2" + "reference": "5dd4e8d60596dbe7e4227edfd3d1482c11126f59" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/admin/zipball/35e9087768d11c3ca751551a5a9d9ce52f222cc2", - "reference": "35e9087768d11c3ca751551a5a9d9ce52f222cc2", + "url": "https://api.github.com/repos/filamentphp/admin/zipball/5dd4e8d60596dbe7e4227edfd3d1482c11126f59", + "reference": "5dd4e8d60596dbe7e4227edfd3d1482c11126f59", "shasum": "" }, "require": { @@ -1542,25 +1542,25 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2022-10-22T11:51:56+00:00" + "time": "2022-11-05T01:21:24+00:00" }, { "name": "filament/forms", - "version": "v2.16.36", + "version": "v2.16.41", "source": { "type": "git", "url": "https://github.com/filamentphp/forms.git", - "reference": "c3fc9d177c0e220f4b1462fee6360fbfcc4ea63d" + "reference": "5cbabd7b3f46701840e4ca579ef6232b9985705e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/forms/zipball/c3fc9d177c0e220f4b1462fee6360fbfcc4ea63d", - "reference": "c3fc9d177c0e220f4b1462fee6360fbfcc4ea63d", + "url": "https://api.github.com/repos/filamentphp/forms/zipball/5cbabd7b3f46701840e4ca579ef6232b9985705e", + "reference": "5cbabd7b3f46701840e4ca579ef6232b9985705e", "shasum": "" }, "require": { "blade-ui-kit/blade-heroicons": "^1.2", - "danharrin/date-format-converter": "^0.2", + "danharrin/date-format-converter": "^0.3", "filament/notifications": "self.version", "filament/support": "self.version", "illuminate/console": "^8.6|^9.0", @@ -1600,20 +1600,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2022-10-22T11:51:56+00:00" + "time": "2022-11-05T11:16:15+00:00" }, { "name": "filament/notifications", - "version": "v2.16.36", + "version": "v2.16.41", "source": { "type": "git", "url": "https://github.com/filamentphp/notifications.git", - "reference": "0f83057a6bc95d031080c785235bbbd8405b0314" + "reference": "ff9137bb1fa5568f923ae5afd35ec90c20459aa5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/notifications/zipball/0f83057a6bc95d031080c785235bbbd8405b0314", - "reference": "0f83057a6bc95d031080c785235bbbd8405b0314", + "url": "https://api.github.com/repos/filamentphp/notifications/zipball/ff9137bb1fa5568f923ae5afd35ec90c20459aa5", + "reference": "ff9137bb1fa5568f923ae5afd35ec90c20459aa5", "shasum": "" }, "require": { @@ -1650,20 +1650,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2022-10-22T11:52:00+00:00" + "time": "2022-10-30T20:32:21+00:00" }, { "name": "filament/support", - "version": "v2.16.36", + "version": "v2.16.41", "source": { "type": "git", "url": "https://github.com/filamentphp/support.git", - "reference": "6e26602696ea96a33666667d3fac423176d65e81" + "reference": "548ab60c617568ecea13ff8ea3cce21a5961afb1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/support/zipball/6e26602696ea96a33666667d3fac423176d65e81", - "reference": "6e26602696ea96a33666667d3fac423176d65e81", + "url": "https://api.github.com/repos/filamentphp/support/zipball/548ab60c617568ecea13ff8ea3cce21a5961afb1", + "reference": "548ab60c617568ecea13ff8ea3cce21a5961afb1", "shasum": "" }, "require": { @@ -1700,20 +1700,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2022-10-22T11:51:54+00:00" + "time": "2022-11-03T14:40:22+00:00" }, { "name": "filament/tables", - "version": "v2.16.36", + "version": "v2.16.41", "source": { "type": "git", "url": "https://github.com/filamentphp/tables.git", - "reference": "327f41e4b1baa8b0229299c94aec04648f3c68c6" + "reference": "e5580dcd6141ae91f07173b5138b138b7b6f38db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/tables/zipball/327f41e4b1baa8b0229299c94aec04648f3c68c6", - "reference": "327f41e4b1baa8b0229299c94aec04648f3c68c6", + "url": "https://api.github.com/repos/filamentphp/tables/zipball/e5580dcd6141ae91f07173b5138b138b7b6f38db", + "reference": "e5580dcd6141ae91f07173b5138b138b7b6f38db", "shasum": "" }, "require": { @@ -1756,20 +1756,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2022-10-22T11:51:59+00:00" + "time": "2022-11-05T11:16:13+00:00" }, { "name": "firebase/php-jwt", - "version": "v6.3.0", + "version": "v6.3.1", "source": { "type": "git", "url": "https://github.com/firebase/php-jwt.git", - "reference": "018dfc4e1da92ad8a1b90adc4893f476a3b41cb8" + "reference": "ddfaddcb520488b42bca3a75e17e9dd53c3667da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/firebase/php-jwt/zipball/018dfc4e1da92ad8a1b90adc4893f476a3b41cb8", - "reference": "018dfc4e1da92ad8a1b90adc4893f476a3b41cb8", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/ddfaddcb520488b42bca3a75e17e9dd53c3667da", + "reference": "ddfaddcb520488b42bca3a75e17e9dd53c3667da", "shasum": "" }, "require": { @@ -1816,9 +1816,9 @@ ], "support": { "issues": "https://github.com/firebase/php-jwt/issues", - "source": "https://github.com/firebase/php-jwt/tree/v6.3.0" + "source": "https://github.com/firebase/php-jwt/tree/v6.3.1" }, - "time": "2022-07-15T16:48:45+00:00" + "time": "2022-11-01T21:20:08+00:00" }, { "name": "flowframe/laravel-trend", @@ -2170,16 +2170,16 @@ }, { "name": "google/apiclient-services", - "version": "v0.272.0", + "version": "v0.273.0", "source": { "type": "git", "url": "https://github.com/googleapis/google-api-php-client-services.git", - "reference": "52b494231f6b531983d12aefac057d0eeec2861c" + "reference": "827bbf2b7b20fa97e845122d3d91517e173e959f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/52b494231f6b531983d12aefac057d0eeec2861c", - "reference": "52b494231f6b531983d12aefac057d0eeec2861c", + "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/827bbf2b7b20fa97e845122d3d91517e173e959f", + "reference": "827bbf2b7b20fa97e845122d3d91517e173e959f", "shasum": "" }, "require": { @@ -2208,22 +2208,22 @@ ], "support": { "issues": "https://github.com/googleapis/google-api-php-client-services/issues", - "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.272.0" + "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.273.0" }, - "time": "2022-10-21T01:18:13+00:00" + "time": "2022-11-07T01:34:13+00:00" }, { "name": "google/auth", - "version": "v1.23.0", + "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/googleapis/google-auth-library-php.git", - "reference": "8da16102d2cd1bdc128d97f323553df465ee7701" + "reference": "cb43cb8ccde76ace65ec40130a9e9c2a15ecfe17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/8da16102d2cd1bdc128d97f323553df465ee7701", - "reference": "8da16102d2cd1bdc128d97f323553df465ee7701", + "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/cb43cb8ccde76ace65ec40130a9e9c2a15ecfe17", + "reference": "cb43cb8ccde76ace65ec40130a9e9c2a15ecfe17", "shasum": "" }, "require": { @@ -2266,9 +2266,9 @@ "support": { "docs": "https://googleapis.github.io/google-auth-library-php/main/", "issues": "https://github.com/googleapis/google-auth-library-php/issues", - "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.23.0" + "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.23.1" }, - "time": "2022-09-27T16:27:23+00:00" + "time": "2022-10-26T20:30:45+00:00" }, { "name": "graham-campbell/result-type", @@ -2546,16 +2546,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.4.1", + "version": "2.4.3", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "69568e4293f4fa993f3b0e51c9723e1e17c41379" + "reference": "67c26b443f348a51926030c83481b85718457d3d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/69568e4293f4fa993f3b0e51c9723e1e17c41379", - "reference": "69568e4293f4fa993f3b0e51c9723e1e17c41379", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/67c26b443f348a51926030c83481b85718457d3d", + "reference": "67c26b443f348a51926030c83481b85718457d3d", "shasum": "" }, "require": { @@ -2645,7 +2645,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.4.1" + "source": "https://github.com/guzzle/psr7/tree/2.4.3" }, "funding": [ { @@ -2661,7 +2661,7 @@ "type": "tidelift" } ], - "time": "2022-08-28T14:45:39+00:00" + "time": "2022-10-26T14:07:24+00:00" }, { "name": "hashids/hashids", @@ -2782,16 +2782,16 @@ }, { "name": "laminas/laminas-diactoros", - "version": "2.19.0", + "version": "2.20.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-diactoros.git", - "reference": "b3c7e9262b4fbec801d8df2370cdebb4f5d3a0ae" + "reference": "10696c809866bebd9d71dca14de6c0d6c1cac2f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/b3c7e9262b4fbec801d8df2370cdebb4f5d3a0ae", - "reference": "b3c7e9262b4fbec801d8df2370cdebb4f5d3a0ae", + "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/10696c809866bebd9d71dca14de6c0d6c1cac2f8", + "reference": "10696c809866bebd9d71dca14de6c0d6c1cac2f8", "shasum": "" }, "require": { @@ -2875,20 +2875,20 @@ "type": "community_bridge" } ], - "time": "2022-10-10T21:28:03+00:00" + "time": "2022-10-25T13:35:54+00:00" }, { "name": "laravel/framework", - "version": "v9.36.4", + "version": "v9.38.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "15ce569fd93124e8e2257c24e3ed85b9ef9951d6" + "reference": "abf198e443e06696af3f356b44de67c0fa516107" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/15ce569fd93124e8e2257c24e3ed85b9ef9951d6", - "reference": "15ce569fd93124e8e2257c24e3ed85b9ef9951d6", + "url": "https://api.github.com/repos/laravel/framework/zipball/abf198e443e06696af3f356b44de67c0fa516107", + "reference": "abf198e443e06696af3f356b44de67c0fa516107", "shasum": "" }, "require": { @@ -3061,25 +3061,25 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2022-10-20T16:11:03+00:00" + "time": "2022-11-01T14:05:55+00:00" }, { "name": "laravel/octane", - "version": "v1.3.3", + "version": "v1.3.6", "source": { "type": "git", "url": "https://github.com/laravel/octane.git", - "reference": "c05488866a04877a8f6b20c22ba4c8ccfdabb932" + "reference": "1e9b86366068a40d59343d400228a5cc6db9e906" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/octane/zipball/c05488866a04877a8f6b20c22ba4c8ccfdabb932", - "reference": "c05488866a04877a8f6b20c22ba4c8ccfdabb932", + "url": "https://api.github.com/repos/laravel/octane/zipball/1e9b86366068a40d59343d400228a5cc6db9e906", + "reference": "1e9b86366068a40d59343d400228a5cc6db9e906", "shasum": "" }, "require": { "laminas/laminas-diactoros": "^2.5", - "laravel/framework": "^8.83.25|^9.33", + "laravel/framework": "^8.83.26|^9.38.0", "laravel/serializable-closure": "^1.0", "nesbot/carbon": "^2.60", "php": "^8.0", @@ -3137,7 +3137,7 @@ "issues": "https://github.com/laravel/octane/issues", "source": "https://github.com/laravel/octane" }, - "time": "2022-10-03T15:14:43+00:00" + "time": "2022-11-01T14:55:59+00:00" }, { "name": "laravel/sanctum", @@ -3334,16 +3334,16 @@ }, { "name": "league/commonmark", - "version": "2.3.5", + "version": "2.3.7", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "84d74485fdb7074f4f9dd6f02ab957b1de513257" + "reference": "a36bd2be4f5387c0f3a8792a0d76b7d68865abbf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/84d74485fdb7074f4f9dd6f02ab957b1de513257", - "reference": "84d74485fdb7074f4f9dd6f02ab957b1de513257", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/a36bd2be4f5387c0f3a8792a0d76b7d68865abbf", + "reference": "a36bd2be4f5387c0f3a8792a0d76b7d68865abbf", "shasum": "" }, "require": { @@ -3363,7 +3363,7 @@ "erusev/parsedown": "^1.0", "ext-json": "*", "github/gfm": "0.29.0", - "michelf/php-markdown": "^1.4", + "michelf/php-markdown": "^1.4 || ^2.0", "nyholm/psr7": "^1.5", "phpstan/phpstan": "^1.8.2", "phpunit/phpunit": "^9.5.21", @@ -3436,7 +3436,7 @@ "type": "tidelift" } ], - "time": "2022-07-29T10:59:45+00:00" + "time": "2022-11-03T17:29:46+00:00" }, { "name": "league/config", @@ -4591,16 +4591,16 @@ }, { "name": "nunomaduro/termwind", - "version": "v1.14.1", + "version": "v1.14.2", "source": { "type": "git", "url": "https://github.com/nunomaduro/termwind.git", - "reference": "86fc30eace93b9b6d4c844ba6de76db84184e01b" + "reference": "9a8218511eb1a0965629ff820dda25985440aefc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/86fc30eace93b9b6d4c844ba6de76db84184e01b", - "reference": "86fc30eace93b9b6d4c844ba6de76db84184e01b", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/9a8218511eb1a0965629ff820dda25985440aefc", + "reference": "9a8218511eb1a0965629ff820dda25985440aefc", "shasum": "" }, "require": { @@ -4657,7 +4657,7 @@ ], "support": { "issues": "https://github.com/nunomaduro/termwind/issues", - "source": "https://github.com/nunomaduro/termwind/tree/v1.14.1" + "source": "https://github.com/nunomaduro/termwind/tree/v1.14.2" }, "funding": [ { @@ -4673,7 +4673,7 @@ "type": "github" } ], - "time": "2022-10-17T15:20:29+00:00" + "time": "2022-10-28T22:51:32+00:00" }, { "name": "orangehill/iseed", @@ -5503,16 +5503,16 @@ }, { "name": "psy/psysh", - "version": "v0.11.8", + "version": "v0.11.9", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "f455acf3645262ae389b10e9beba0c358aa6994e" + "reference": "1acec99d6684a54ff92f8b548a4e41b566963778" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/f455acf3645262ae389b10e9beba0c358aa6994e", - "reference": "f455acf3645262ae389b10e9beba0c358aa6994e", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/1acec99d6684a54ff92f8b548a4e41b566963778", + "reference": "1acec99d6684a54ff92f8b548a4e41b566963778", "shasum": "" }, "require": { @@ -5573,9 +5573,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.8" + "source": "https://github.com/bobthecow/psysh/tree/v0.11.9" }, - "time": "2022-07-28T14:25:11+00:00" + "time": "2022-11-06T15:29:46+00:00" }, { "name": "ralouphie/getallheaders", @@ -5702,21 +5702,20 @@ }, { "name": "ramsey/uuid", - "version": "4.5.1", + "version": "4.6.0", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "a161a26d917604dc6d3aa25100fddf2556e9f35d" + "reference": "ad63bc700e7d021039e30ce464eba384c4a1d40f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/a161a26d917604dc6d3aa25100fddf2556e9f35d", - "reference": "a161a26d917604dc6d3aa25100fddf2556e9f35d", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/ad63bc700e7d021039e30ce464eba384c4a1d40f", + "reference": "ad63bc700e7d021039e30ce464eba384c4a1d40f", "shasum": "" }, "require": { "brick/math": "^0.8.8 || ^0.9 || ^0.10", - "ext-ctype": "*", "ext-json": "*", "php": "^8.0", "ramsey/collection": "^1.0" @@ -5748,7 +5747,6 @@ }, "suggest": { "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", - "ext-ctype": "Enables faster processing of character classification using ctype functions.", "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", @@ -5780,7 +5778,7 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.5.1" + "source": "https://github.com/ramsey/uuid/tree/4.6.0" }, "funding": [ { @@ -5792,7 +5790,7 @@ "type": "tidelift" } ], - "time": "2022-09-16T03:22:46+00:00" + "time": "2022-11-05T23:03:38+00:00" }, { "name": "react/promise", @@ -5872,16 +5870,16 @@ }, { "name": "rhilip/bencode", - "version": "v2.3.1", + "version": "v2.3.2", "source": { "type": "git", "url": "https://github.com/Rhilip/Bencode.git", - "reference": "8ebf93f9213315407bbb91f6aa7d5e5f5efa3892" + "reference": "e6b90a062b8d6f4f44aeb4da4c2bc35de19dba1f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Rhilip/Bencode/zipball/8ebf93f9213315407bbb91f6aa7d5e5f5efa3892", - "reference": "8ebf93f9213315407bbb91f6aa7d5e5f5efa3892", + "url": "https://api.github.com/repos/Rhilip/Bencode/zipball/e6b90a062b8d6f4f44aeb4da4c2bc35de19dba1f", + "reference": "e6b90a062b8d6f4f44aeb4da4c2bc35de19dba1f", "shasum": "" }, "require": { @@ -5917,9 +5915,9 @@ ], "support": { "issues": "https://github.com/Rhilip/Bencode/issues", - "source": "https://github.com/Rhilip/Bencode/tree/v2.3.1" + "source": "https://github.com/Rhilip/Bencode/tree/v2.3.2" }, - "time": "2022-07-17T11:19:47+00:00" + "time": "2022-11-01T10:28:34+00:00" }, { "name": "rlanvin/php-ip", @@ -6505,16 +6503,16 @@ }, { "name": "spiral/roadrunner-worker", - "version": "v2.2.0", + "version": "v2.3.0", "source": { "type": "git", "url": "https://github.com/spiral/roadrunner-worker.git", - "reference": "97399e1f45b188e4288817672df858908b641401" + "reference": "028adbbd43566b264fa3e3edb47cfbc3fb2cd11e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spiral/roadrunner-worker/zipball/97399e1f45b188e4288817672df858908b641401", - "reference": "97399e1f45b188e4288817672df858908b641401", + "url": "https://api.github.com/repos/spiral/roadrunner-worker/zipball/028adbbd43566b264fa3e3edb47cfbc3fb2cd11e", + "reference": "028adbbd43566b264fa3e3edb47cfbc3fb2cd11e", "shasum": "" }, "require": { @@ -6562,9 +6560,9 @@ "description": "RoadRunner: PHP worker", "support": { "issues": "https://github.com/spiral/roadrunner-worker/issues", - "source": "https://github.com/spiral/roadrunner-worker/tree/v2.2.0" + "source": "https://github.com/spiral/roadrunner-worker/tree/v2.3.0" }, - "time": "2022-03-22T11:03:47+00:00" + "time": "2022-10-28T09:36:29+00:00" }, { "name": "spiral/tokenizer", @@ -6620,16 +6618,16 @@ }, { "name": "symfony/console", - "version": "v6.0.14", + "version": "v6.0.15", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "1f89cab8d52c84424f798495b3f10342a7b1a070" + "reference": "b0b910724a0a0326b4481e4f8a30abb2dd442efb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/1f89cab8d52c84424f798495b3f10342a7b1a070", - "reference": "1f89cab8d52c84424f798495b3f10342a7b1a070", + "url": "https://api.github.com/repos/symfony/console/zipball/b0b910724a0a0326b4481e4f8a30abb2dd442efb", + "reference": "b0b910724a0a0326b4481e4f8a30abb2dd442efb", "shasum": "" }, "require": { @@ -6695,7 +6693,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.0.14" + "source": "https://github.com/symfony/console/tree/v6.0.15" }, "funding": [ { @@ -6711,7 +6709,7 @@ "type": "tidelift" } ], - "time": "2022-10-07T08:02:12+00:00" + "time": "2022-10-26T21:42:20+00:00" }, { "name": "symfony/css-selector", @@ -6847,16 +6845,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.0.14", + "version": "v6.0.15", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "81e57c793d9a573f29f8b5296d5d8ee4602badcb" + "reference": "f000c166cb3ee32c4c822831a79260a135cd59b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/81e57c793d9a573f29f8b5296d5d8ee4602badcb", - "reference": "81e57c793d9a573f29f8b5296d5d8ee4602badcb", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/f000c166cb3ee32c4c822831a79260a135cd59b5", + "reference": "f000c166cb3ee32c4c822831a79260a135cd59b5", "shasum": "" }, "require": { @@ -6898,7 +6896,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.0.14" + "source": "https://github.com/symfony/error-handler/tree/v6.0.15" }, "funding": [ { @@ -6914,7 +6912,7 @@ "type": "tidelift" } ], - "time": "2022-10-07T08:02:12+00:00" + "time": "2022-10-28T16:22:58+00:00" }, { "name": "symfony/event-dispatcher", @@ -7141,16 +7139,16 @@ }, { "name": "symfony/http-client", - "version": "v6.0.14", + "version": "v6.0.15", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "ec183a587e3ad47f03cf1572d4b8437e0fc3e923" + "reference": "af84893895ce7637a4b60fd3de87fe9e44286a21" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/ec183a587e3ad47f03cf1572d4b8437e0fc3e923", - "reference": "ec183a587e3ad47f03cf1572d4b8437e0fc3e923", + "url": "https://api.github.com/repos/symfony/http-client/zipball/af84893895ce7637a4b60fd3de87fe9e44286a21", + "reference": "af84893895ce7637a4b60fd3de87fe9e44286a21", "shasum": "" }, "require": { @@ -7205,7 +7203,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v6.0.14" + "source": "https://github.com/symfony/http-client/tree/v6.0.15" }, "funding": [ { @@ -7221,7 +7219,7 @@ "type": "tidelift" } ], - "time": "2022-10-11T15:20:43+00:00" + "time": "2022-10-28T16:22:58+00:00" }, { "name": "symfony/http-client-contracts", @@ -7303,16 +7301,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.0.14", + "version": "v6.0.15", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "e8aa505d35660877e6695d68be53df2ceac7cf57" + "reference": "a93829f4043fdcddebabd8433bdb46c2dcaefe06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e8aa505d35660877e6695d68be53df2ceac7cf57", - "reference": "e8aa505d35660877e6695d68be53df2ceac7cf57", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/a93829f4043fdcddebabd8433bdb46c2dcaefe06", + "reference": "a93829f4043fdcddebabd8433bdb46c2dcaefe06", "shasum": "" }, "require": { @@ -7358,7 +7356,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.0.14" + "source": "https://github.com/symfony/http-foundation/tree/v6.0.15" }, "funding": [ { @@ -7374,20 +7372,20 @@ "type": "tidelift" } ], - "time": "2022-10-02T08:16:40+00:00" + "time": "2022-10-12T09:44:26+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.0.14", + "version": "v6.0.15", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "f9fc93c4f12e2fd7dea37f7b5840deb34e9037fc" + "reference": "22c820abe601e7328b56cec86626617139266f48" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f9fc93c4f12e2fd7dea37f7b5840deb34e9037fc", - "reference": "f9fc93c4f12e2fd7dea37f7b5840deb34e9037fc", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/22c820abe601e7328b56cec86626617139266f48", + "reference": "22c820abe601e7328b56cec86626617139266f48", "shasum": "" }, "require": { @@ -7467,7 +7465,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.0.14" + "source": "https://github.com/symfony/http-kernel/tree/v6.0.15" }, "funding": [ { @@ -7483,20 +7481,20 @@ "type": "tidelift" } ], - "time": "2022-10-12T07:43:45+00:00" + "time": "2022-10-28T18:00:40+00:00" }, { "name": "symfony/mailer", - "version": "v6.0.13", + "version": "v6.0.15", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "6269c872ab4792e8facbf8af27a2fbee8429f217" + "reference": "5eaa3f1404cafa842e953ae16c35757b7356fb32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/6269c872ab4792e8facbf8af27a2fbee8429f217", - "reference": "6269c872ab4792e8facbf8af27a2fbee8429f217", + "url": "https://api.github.com/repos/symfony/mailer/zipball/5eaa3f1404cafa842e953ae16c35757b7356fb32", + "reference": "5eaa3f1404cafa842e953ae16c35757b7356fb32", "shasum": "" }, "require": { @@ -7541,7 +7539,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.0.13" + "source": "https://github.com/symfony/mailer/tree/v6.0.15" }, "funding": [ { @@ -7557,7 +7555,7 @@ "type": "tidelift" } ], - "time": "2022-08-29T06:49:22+00:00" + "time": "2022-10-28T16:22:58+00:00" }, { "name": "symfony/mime", @@ -8529,16 +8527,16 @@ }, { "name": "symfony/routing", - "version": "v6.0.11", + "version": "v6.0.15", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "434b64f7d3a582ec33fcf69baaf085473e67d639" + "reference": "3b7384fad32c6d0e1919b5bd18a69fbcfc383508" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/434b64f7d3a582ec33fcf69baaf085473e67d639", - "reference": "434b64f7d3a582ec33fcf69baaf085473e67d639", + "url": "https://api.github.com/repos/symfony/routing/zipball/3b7384fad32c6d0e1919b5bd18a69fbcfc383508", + "reference": "3b7384fad32c6d0e1919b5bd18a69fbcfc383508", "shasum": "" }, "require": { @@ -8597,7 +8595,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.0.11" + "source": "https://github.com/symfony/routing/tree/v6.0.15" }, "funding": [ { @@ -8613,7 +8611,7 @@ "type": "tidelift" } ], - "time": "2022-07-20T13:45:53+00:00" + "time": "2022-10-18T13:11:57+00:00" }, { "name": "symfony/service-contracts", @@ -8699,16 +8697,16 @@ }, { "name": "symfony/string", - "version": "v6.0.14", + "version": "v6.0.15", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "3db7da820a6e4a584b714b3933c34c6a7db4d86c" + "reference": "51ac0fa0ccf132a00519b87c97e8f775fa14e771" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/3db7da820a6e4a584b714b3933c34c6a7db4d86c", - "reference": "3db7da820a6e4a584b714b3933c34c6a7db4d86c", + "url": "https://api.github.com/repos/symfony/string/zipball/51ac0fa0ccf132a00519b87c97e8f775fa14e771", + "reference": "51ac0fa0ccf132a00519b87c97e8f775fa14e771", "shasum": "" }, "require": { @@ -8764,7 +8762,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.0.14" + "source": "https://github.com/symfony/string/tree/v6.0.15" }, "funding": [ { @@ -9896,16 +9894,16 @@ }, { "name": "filp/whoops", - "version": "2.14.5", + "version": "2.14.6", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc" + "reference": "f7948baaa0330277c729714910336383286305da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/a63e5e8f26ebbebf8ed3c5c691637325512eb0dc", - "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc", + "url": "https://api.github.com/repos/filp/whoops/zipball/f7948baaa0330277c729714910336383286305da", + "reference": "f7948baaa0330277c729714910336383286305da", "shasum": "" }, "require": { @@ -9955,7 +9953,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.14.5" + "source": "https://github.com/filp/whoops/tree/2.14.6" }, "funding": [ { @@ -9963,7 +9961,7 @@ "type": "github" } ], - "time": "2022-01-07T12:00:00+00:00" + "time": "2022-11-02T16:23:29+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -10658,16 +10656,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.17", + "version": "9.2.18", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8" + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/aa94dc41e8661fe90c7316849907cba3007b10d8", - "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/12fddc491826940cf9b7e88ad9664cf51f0f6d0a", + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a", "shasum": "" }, "require": { @@ -10723,7 +10721,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.17" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.18" }, "funding": [ { @@ -10731,7 +10729,7 @@ "type": "github" } ], - "time": "2022-08-30T12:24:04+00:00" + "time": "2022-10-27T13:35:33+00:00" }, { "name": "phpunit/php-file-iterator", @@ -10976,16 +10974,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.25", + "version": "9.5.26", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d" + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d", - "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2", "shasum": "" }, "require": { @@ -11058,7 +11056,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.25" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.26" }, "funding": [ { @@ -11074,7 +11072,7 @@ "type": "tidelift" } ], - "time": "2022-09-25T03:44:45+00:00" + "time": "2022-10-28T06:00:21+00:00" }, { "name": "sebastian/cli-parser", @@ -12248,16 +12246,16 @@ }, { "name": "spatie/laravel-ignition", - "version": "1.6.0", + "version": "1.6.1", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "c21309ebf6657e0c38083afac8af9baa12885676" + "reference": "2b79cf6ed40946b64ac6713d7d2da8a9d87f612b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/c21309ebf6657e0c38083afac8af9baa12885676", - "reference": "c21309ebf6657e0c38083afac8af9baa12885676", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/2b79cf6ed40946b64ac6713d7d2da8a9d87f612b", + "reference": "2b79cf6ed40946b64ac6713d7d2da8a9d87f612b", "shasum": "" }, "require": { @@ -12334,7 +12332,7 @@ "type": "github" } ], - "time": "2022-10-25T08:38:04+00:00" + "time": "2022-10-26T17:39:54+00:00" }, { "name": "theseer/tokenizer", @@ -12405,7 +12403,8 @@ "ext-pcntl": "*", "ext-redis": "*", "ext-xml": "*", - "ext-gmp": "*" + "ext-gmp": "*", + "ext-zend-opcache": "*" }, "platform-dev": [], "plugin-api-version": "2.0.0" diff --git a/include/cleanup.php b/include/cleanup.php index 54a190f8..54261a82 100644 --- a/include/cleanup.php +++ b/include/cleanup.php @@ -738,6 +738,30 @@ function docleanup($forceAll = 0, $printProgress = false) { printProgress($log); } + //remove donor status if time's up + $res = sql_query("SELECT id, modcomment FROM users WHERE donor='yes' AND donoruntil is not null and donoruntil != '0000-00-00 00:00:00' and donoruntil < NOW()") or sqlerr(__FILE__, __LINE__); + if (mysql_num_rows($res) > 0) + { + while ($arr = mysql_fetch_assoc($res)) + { + $dt = sqlesc(date("Y-m-d H:i:s")); + $subject = sqlesc($lang_cleanup_target[get_user_lang($arr['id'])]['msg_donor_status_removed']); + $msg = sqlesc($lang_cleanup_target[get_user_lang($arr['id'])]['msg_donor_status_removed_body']); + ///---AUTOSYSTEM MODCOMMENT---// + $modcomment = htmlspecialchars($arr["modcomment"]); + $modcomment = date("Y-m-d") . " - donor status removed by - AutoSystem.\n". $modcomment; + $modcom = sqlesc($modcomment); + ///---end + sql_query("UPDATE users SET donor = 'no', modcomment = $modcom WHERE id = {$arr['id']}") or sqlerr(__FILE__, __LINE__); + sql_query("INSERT INTO messages (sender, receiver, added, msg, subject) VALUES(0, {$arr['id']}, $dt, $msg, $subject)") or sqlerr(__FILE__, __LINE__); + } + } + $log = "remove donor status if time's up"; + do_log($log); + if ($printProgress) { + printProgress($log); + } + // promote peasant back to user peasant_to_user($psdlfive_account,0, $psratiofive_account); diff --git a/include/constants.php b/include/constants.php index ffa22119..8b231931 100644 --- a/include/constants.php +++ b/include/constants.php @@ -1,6 +1,6 @@ %s]', $CURUSER['id'], (new \App\Repositories\ClaimRepository())->getStats($CURUSER['id']))?> - +
diff --git a/lang/_target/lang_cleanup.php b/lang/_target/lang_cleanup.php index 910485d7..b63a6906 100644 --- a/lang/_target/lang_cleanup.php +++ b/lang/_target/lang_cleanup.php @@ -16,6 +16,8 @@ $lang_cleanup_target = array 'msg_days_or_get_banned' => " days or your account will be banned. If you have no idea of what is ratio or how it affects you, we suggest you read the [url=faq.php#idid17][b]FAQ[/b][/url].", 'msg_vip_status_removed' => "VIP status removed by system.", 'msg_vip_status_removed_body' => "Your VIP status has timed out and has been auto-removed by the system. Become a VIP again by exchanging some Karma Bonus Points. Cheers!", + 'msg_donor_status_removed' => "Donor status removed by system.", + 'msg_donor_status_removed_body' => "Your donor status has timed out and has been auto-removed by the system. Become a donor again by donate to us. Cheers!", 'msg_warning_removed' => "Warning removed by System", 'msg_your_warning_removed' => "Your warning is removed by System. We hope you would behave from now on.", 'msg_your_torrent_deleted' => "Your torrent was deleted", @@ -36,6 +38,8 @@ $lang_cleanup_target = array 'msg_days_or_get_banned' => "天内仍未设法提高分享率,你的帐户将被禁用!如果你不明白什么是分享率及其要求,请参考[url=faq.php#id17]常见问题[/url]。", 'msg_vip_status_removed' => "VIP待遇到期", 'msg_vip_status_removed_body' => "你的VIP待遇因到期而被系统停止。你可以使用魔力值再次获得该待遇。好运!", + 'msg_donor_status_removed' => "捐赠者待遇到期", + 'msg_donor_status_removed_body' => "你的捐赠者待遇因到期而被系统停止。你可以捐赠我们再次获得该待遇。好运!", 'msg_warning_removed' => "警告被系统移除", 'msg_your_warning_removed' => "你的警告被系统移除。我们希望你自此能好好表现。", 'msg_your_torrent_deleted' => "你发布的种子被删除", @@ -56,6 +60,8 @@ $lang_cleanup_target = array 'msg_days_or_get_banned' => "天內仍未設法提高分享率,你的帳戶將被禁用!如果你不明白什麼是分享率及其要求,請參考[url=faq.php#id17]常見問題[/url]。", 'msg_vip_status_removed' => "VIP待遇到期", 'msg_vip_status_removed_body' => "你的VIP待遇因到期而被系統停止。你可以使用魔力值再次獲得該待遇。好運!", + 'msg_donor_status_removed' => "捐贈者待遇到期", + 'msg_donor_status_removed_body' => "你的捐赠者待遇因到期而被系統停止。你可以捐贈我们再次獲得該待遇。好運!", 'msg_warning_removed' => "警告被系統移除", 'msg_your_warning_removed' => "你的警告被系統移除。我們希望你自此能好好表現。", 'msg_your_torrent_deleted' => "你發布的種子被刪除", diff --git a/lang/_target/lang_modtask.php b/lang/_target/lang_modtask.php index e51fcab3..a5ed788d 100644 --- a/lang/_target/lang_modtask.php +++ b/lang/_target/lang_modtask.php @@ -51,6 +51,8 @@ $lang_modtask_target = array 'msg_to_new' =>" to ", 'msg_your_vip_status_changed' => "Your VIP status changed", 'msg_vip_status_changed_by' => "Your VIP status changed by ", + 'msg_your_donor_status_changed' => "Your donor status changed", + 'msg_donor_status_changed_by' => "Your donor status changed by ", ), 'chs' => array( 'msg_promoted' => "提升", @@ -101,6 +103,8 @@ $lang_modtask_target = array 'msg_to_new' =>"改为", 'msg_your_vip_status_changed' => "你的贵宾资格状态被改变", 'msg_vip_status_changed_by' => "你的贵宾资格状态被改变。管理员:", + 'msg_your_donor_status_changed' => "你的捐赠者资格状态被改变", + 'msg_donor_status_changed_by' => "你的捐赠者资格状态被改变。管理员:", ), 'cht' => array( 'msg_promoted' => "提升", @@ -151,6 +155,8 @@ $lang_modtask_target = array 'msg_to_new' =>"改為", 'msg_your_vip_status_changed' => "你的貴賓資格狀態被改變", 'msg_vip_status_changed_by' => "你的貴賓資格狀態被改變。管理員:", + 'msg_your_donor_status_changed' => "你的捐贈資格狀態被改變", + 'msg_donor_status_changed_by' => "你的捐贈資格狀態被改變。管理員:", ), 'ko' => array( 'msg_promoted' => "승급", diff --git a/lang/chs/lang_settings.php b/lang/chs/lang_settings.php index 75e82e5b..f1ea0152 100644 --- a/lang/chs/lang_settings.php +++ b/lang/chs/lang_settings.php @@ -794,6 +794,8 @@ $lang_settings = array 'row_destroy_disabled' => '彻底删除账号', 'text_destroy_disabled_note_one' => '被封禁的账号如果连续', 'text_destroy_disabled_note_two' => "天不登录,将被从数据库彻底物理删除。默认'500',请设置一个大于上边任何一种导致封禁的值。设为'0'来禁止此规则。", + 'row_enable_global_search_system' => '启用全站搜索', + 'text_global_search_system_note' => "默认:'是'。若启用,当有多个分区时,主菜单右下角显示全站搜索入口。", ); ?> diff --git a/lang/cht/lang_settings.php b/lang/cht/lang_settings.php index 6aaf03e8..b0fe01c7 100644 --- a/lang/cht/lang_settings.php +++ b/lang/cht/lang_settings.php @@ -794,6 +794,8 @@ $lang_settings = array 'row_destroy_disabled' => '徹底刪除賬號', 'text_destroy_disabled_note_one' => '被封禁的賬號如果連續', 'text_destroy_disabled_note_two' => "天不登錄,將被從數據庫徹底物理刪除。默認'500',請設置一個大於上邊任何一種導致封禁的值。設為'0'來禁止此規則。", + 'row_enable_global_search_system' => '啟用全站搜索', + 'text_global_search_system_note' => "默認:'是'。若啟用,當有多個分區時,主菜單右下角顯示全站搜索入口。", ); ?> diff --git a/lang/en/lang_settings.php b/lang/en/lang_settings.php index a82eb6ad..90e33587 100644 --- a/lang/en/lang_settings.php +++ b/lang/en/lang_settings.php @@ -794,6 +794,8 @@ $lang_settings = array 'row_destroy_disabled' => 'Delete account completely', 'text_destroy_disabled_note_one' => 'Disabled accounts if they are continuously', 'text_destroy_disabled_note_two' => "Days without logging in, will be physically deleted from the database completely. Default '500', please set a value greater than any of the above to cause disable. Set to '0' to disable this rule." , + 'row_enable_global_search_system' => 'Enable global search', + 'text_global_search_system_note' => "Default: 'Yes'. If enabled, when there are multiple sections, the global search portal is displayed in the bottom right corner of the main menu.", ); ?> diff --git a/nexus/Install/settings.default.php b/nexus/Install/settings.default.php index 1f8398ea..f93a4707 100644 --- a/nexus/Install/settings.default.php +++ b/nexus/Install/settings.default.php @@ -93,6 +93,7 @@ return array ( 'imdb_language' => 'en-US', 'offer_skip_approved_count' => 5, 'upload_deny_approval_deny_count' => 2, + 'enable_global_search' => 'yes', ), 'smtp' => array ( diff --git a/public/modtask.php b/public/modtask.php index bb3e814c..5d4202c2 100644 --- a/public/modtask.php +++ b/public/modtask.php @@ -75,7 +75,8 @@ if ($action == "edituser") $updateset[] = "stafffor = " . sqlesc($stafffor); $updateset[] = "pickfor = " . sqlesc($pickfor); $updateset[] = "picker = " . sqlesc($moviepicker); - $updateset[] = "enabled = " . sqlesc($enabled); + //migrate to management +// $updateset[] = "enabled = " . sqlesc($enabled); $updateset[] = "uploadpos = " . sqlesc($uploadpos); $updateset[] = "downloadpos = " . sqlesc($downloadpos); $updateset[] = "forumpost = " . sqlesc($forumpost); @@ -126,38 +127,41 @@ if ($action == "edituser") ]; \App\Models\UsernameChangeLog::query()->create($changeLog); } - if ($ori_downloaded != $downloaded){ - $updateset[] = "downloaded = " . sqlesc($downloaded); - $modcomment = date("Y-m-d") . " - Downloaded amount changed from $arr[downloaded] to $downloaded by {$CURUSER['username']}.\n". $modcomment; - $subject = sqlesc($lang_modtask_target[get_user_lang($userid)]['msg_downloaded_change']); - $msg = sqlesc($lang_modtask_target[get_user_lang($userid)]['msg_your_downloaded_changed_from'].mksize($arr['downloaded']).$lang_modtask_target[get_user_lang($userid)]['msg_to_new'] . mksize($downloaded) .$lang_modtask_target[get_user_lang($userid)]['msg_by'].$CURUSER['username']); - sql_query("INSERT INTO messages (sender, receiver, subject, msg, added) VALUES(0, $userid, $subject, $msg, $added)") or sqlerr(__FILE__, __LINE__); - } - if ($ori_uploaded != $uploaded){ - $updateset[] = "uploaded = " . sqlesc($uploaded); - $modcomment = date("Y-m-d") . " - Uploaded amount changed from $arr[uploaded] to $uploaded by {$CURUSER['username']}.\n". $modcomment; - $subject = sqlesc($lang_modtask_target[get_user_lang($userid)]['msg_uploaded_change']); - $msg = sqlesc($lang_modtask_target[get_user_lang($userid)]['msg_your_uploaded_changed_from'].mksize($arr['uploaded']).$lang_modtask_target[get_user_lang($userid)]['msg_to_new'] . mksize($uploaded) .$lang_modtask_target[get_user_lang($userid)]['msg_by'].$CURUSER['username']); - sql_query("INSERT INTO messages (sender, receiver, subject, msg, added) VALUES(0, $userid, $subject, $msg, $added)") or sqlerr(__FILE__, __LINE__); - } - if ($ori_bonus != $bonus){ - $updateset[] = "seedbonus = " . sqlesc($bonus); - $modcomment = date("Y-m-d") . " - Bonus amount changed from $arr[seedbonus] to $bonus by {$CURUSER['username']}.\n". $modcomment; - $subject = sqlesc($lang_modtask_target[get_user_lang($userid)]['msg_bonus_change']); - $msg = sqlesc($lang_modtask_target[get_user_lang($userid)]['msg_your_bonus_changed_from'].$arr['seedbonus'].$lang_modtask_target[get_user_lang($userid)]['msg_to_new'] . $bonus .$lang_modtask_target[get_user_lang($userid)]['msg_by'].$CURUSER['username']); - sql_query("INSERT INTO messages (sender, receiver, subject, msg, added) VALUES(0, $userid, $subject, $msg, $added)") or sqlerr(__FILE__, __LINE__); - } - if ($arr['invites'] != $invites){ - $updateset[] = "invites = " . sqlesc($invites); - $modcomment = date("Y-m-d") . " - Invite amount changed from $arr[invites] to $invites by {$CURUSER['username']}.\n". $modcomment; - $subject = sqlesc($lang_modtask_target[get_user_lang($userid)]['msg_invite_change']); - $msg = sqlesc($lang_modtask_target[get_user_lang($userid)]['msg_your_invite_changed_from'].$arr['invites'].$lang_modtask_target[get_user_lang($userid)]['msg_to_new'] . $invites .$lang_modtask_target[get_user_lang($userid)]['msg_by'].$CURUSER['username']); - sql_query("INSERT INTO messages (sender, receiver, subject, msg, added) VALUES(0, $userid, $subject, $msg, $added)") or sqlerr(__FILE__, __LINE__); - } + //migrate to management +// if ($ori_downloaded != $downloaded){ +// $updateset[] = "downloaded = " . sqlesc($downloaded); +// $modcomment = date("Y-m-d") . " - Downloaded amount changed from $arr[downloaded] to $downloaded by {$CURUSER['username']}.\n". $modcomment; +// $subject = sqlesc($lang_modtask_target[get_user_lang($userid)]['msg_downloaded_change']); +// $msg = sqlesc($lang_modtask_target[get_user_lang($userid)]['msg_your_downloaded_changed_from'].mksize($arr['downloaded']).$lang_modtask_target[get_user_lang($userid)]['msg_to_new'] . mksize($downloaded) .$lang_modtask_target[get_user_lang($userid)]['msg_by'].$CURUSER['username']); +// sql_query("INSERT INTO messages (sender, receiver, subject, msg, added) VALUES(0, $userid, $subject, $msg, $added)") or sqlerr(__FILE__, __LINE__); +// } +// +// if ($ori_uploaded != $uploaded){ +// $updateset[] = "uploaded = " . sqlesc($uploaded); +// $modcomment = date("Y-m-d") . " - Uploaded amount changed from $arr[uploaded] to $uploaded by {$CURUSER['username']}.\n". $modcomment; +// $subject = sqlesc($lang_modtask_target[get_user_lang($userid)]['msg_uploaded_change']); +// $msg = sqlesc($lang_modtask_target[get_user_lang($userid)]['msg_your_uploaded_changed_from'].mksize($arr['uploaded']).$lang_modtask_target[get_user_lang($userid)]['msg_to_new'] . mksize($uploaded) .$lang_modtask_target[get_user_lang($userid)]['msg_by'].$CURUSER['username']); +// sql_query("INSERT INTO messages (sender, receiver, subject, msg, added) VALUES(0, $userid, $subject, $msg, $added)") or sqlerr(__FILE__, __LINE__); +// } +// if ($ori_bonus != $bonus){ +// $updateset[] = "seedbonus = " . sqlesc($bonus); +// $modcomment = date("Y-m-d") . " - Bonus amount changed from $arr[seedbonus] to $bonus by {$CURUSER['username']}.\n". $modcomment; +// $subject = sqlesc($lang_modtask_target[get_user_lang($userid)]['msg_bonus_change']); +// $msg = sqlesc($lang_modtask_target[get_user_lang($userid)]['msg_your_bonus_changed_from'].$arr['seedbonus'].$lang_modtask_target[get_user_lang($userid)]['msg_to_new'] . $bonus .$lang_modtask_target[get_user_lang($userid)]['msg_by'].$CURUSER['username']); +// sql_query("INSERT INTO messages (sender, receiver, subject, msg, added) VALUES(0, $userid, $subject, $msg, $added)") or sqlerr(__FILE__, __LINE__); +// } +// if ($arr['invites'] != $invites){ +// $updateset[] = "invites = " . sqlesc($invites); +// $modcomment = date("Y-m-d") . " - Invite amount changed from $arr[invites] to $invites by {$CURUSER['username']}.\n". $modcomment; +// $subject = sqlesc($lang_modtask_target[get_user_lang($userid)]['msg_invite_change']); +// $msg = sqlesc($lang_modtask_target[get_user_lang($userid)]['msg_your_invite_changed_from'].$arr['invites'].$lang_modtask_target[get_user_lang($userid)]['msg_to_new'] . $invites .$lang_modtask_target[get_user_lang($userid)]['msg_by'].$CURUSER['username']); +// sql_query("INSERT INTO messages (sender, receiver, subject, msg, added) VALUES(0, $userid, $subject, $msg, $added)") or sqlerr(__FILE__, __LINE__); +// } } if(get_user_class() == UC_STAFFLEADER) { $donor = $_POST["donor"]; + $donoruntil = !empty($_POST['donoruntil']) ? $_POST['donoruntil'] : null; $donated = $_POST["donated"]; $donated_cny = $_POST["donated_cny"]; $this_donated_usd = $donated - $arr["donated"]; @@ -171,7 +175,15 @@ if ($action == "edituser") $updateset[] = "donated_cny = " . sqlesc($donated_cny); } $updateset[] = "donor = " . sqlesc($donor); - $updateset[] = "donoruntil = " . sqlesc(!empty($_POST['donoruntil']) ? $_POST['donoruntil'] : null); + $updateset[] = "donoruntil = " . sqlesc($donoruntil); + + if (($donor != $arr['donor']) && (($donor == 'yes' && $donoruntil && $donoruntil >= date('Y-m-d H:i:s')) || ($donor == 'no'))) { + $subject = sqlesc($lang_modtask_target[get_user_lang($userid)]['msg_your_donor_status_changed']); + $msg = sqlesc($lang_modtask_target[get_user_lang($userid)]['msg_donor_status_changed_by'].$CURUSER['username']); + $added = sqlesc(date("Y-m-d H:i:s")); + sql_query("INSERT INTO messages (sender, receiver, subject, msg, added) VALUES (0, $userid, $subject, $msg, $added)") or sqlerr(__FILE__, __LINE__); + $modcomment = date("Y-m-d") . " - donor status changed by {$CURUSER['username']}. Current donor status: $donor \n". $modcomment; + } } if ($chpassword != "" AND $passagain != "") { @@ -251,28 +263,29 @@ if ($action == "edituser") sql_query("INSERT INTO messages (sender, receiver, subject, msg, added) VALUES (0, $userid, $subject, $msg, $added)") or sqlerr(__FILE__, __LINE__); $updateset[] = "warned = 'yes', timeswarned = timeswarned+1, lastwarned=$added, warnedby={$CURUSER['id']}"; } - if ($enabled != $curenabled) - { - if ($enabled == 'yes') { - $modcomment = date("Y-m-d") . " - Enabled by " . $CURUSER['username']. ".\n". $modcomment; - if (get_single_value("users","class","WHERE id = ".sqlesc($userid)) == UC_PEASANT){ - $length = 30*86400; // warn users until 30 days - $until = sqlesc(date("Y-m-d H:i:s",(strtotime(date("Y-m-d H:i:s")) + $length))); - sql_query("UPDATE users SET enabled='yes', leechwarn='yes', leechwarnuntil=$until WHERE id = ".sqlesc($userid)); - } - else{ - sql_query("UPDATE users SET enabled='yes', leechwarn='no' WHERE id = ".sqlesc($userid)) or sqlerr(__FILE__, __LINE__); - } - } else { - $modcomment = date("Y-m-d") . " - Disabled by " . $CURUSER['username']. ".\n". $modcomment; - $banLog = [ - 'uid' => $userid, - 'username' => $user->username, - 'operator' => $CURUSER['id'], - 'reason' => nexus_trans('user.edit_ban_reason', [], $user->locale), - ]; - } - } + //migrate to management +// if ($enabled != $curenabled) +// { +// if ($enabled == 'yes') { +// $modcomment = date("Y-m-d") . " - Enabled by " . $CURUSER['username']. ".\n". $modcomment; +// if (get_single_value("users","class","WHERE id = ".sqlesc($userid)) == UC_PEASANT){ +// $length = 30*86400; // warn users until 30 days +// $until = sqlesc(date("Y-m-d H:i:s",(strtotime(date("Y-m-d H:i:s")) + $length))); +// sql_query("UPDATE users SET enabled='yes', leechwarn='yes', leechwarnuntil=$until WHERE id = ".sqlesc($userid)); +// } +// else{ +// sql_query("UPDATE users SET enabled='yes', leechwarn='no' WHERE id = ".sqlesc($userid)) or sqlerr(__FILE__, __LINE__); +// } +// } else { +// $modcomment = date("Y-m-d") . " - Disabled by " . $CURUSER['username']. ".\n". $modcomment; +// $banLog = [ +// 'uid' => $userid, +// 'username' => $user->username, +// 'operator' => $CURUSER['id'], +// 'reason' => nexus_trans('user.edit_ban_reason', [], $user->locale), +// ]; +// } +// } if ($arr['noad'] != $noad){ $updateset[]='noad = '.sqlesc($noad); $modcomment = date("Y-m-d") . " - No Ad set to ".$noad." by ". $CURUSER['username']. ".\n". $modcomment; diff --git a/public/settings.php b/public/settings.php index 2ebb11b6..7e390585 100644 --- a/public/settings.php +++ b/public/settings.php @@ -42,7 +42,7 @@ if ($action == 'savesettings_main') // save main 'smalldescription','altname','extforum','extforumurl','defaultlang','defstylesheet', 'donation','spsct','browsecat','specialcat','waitsystem', 'maxdlsystem','bitbucket','torrentnameprefix', 'showforumstats','verification','invite_count','invite_timeout', 'seeding_leeching_time_calc_start', 'startsubid', 'logo', 'showlastxforumposts', 'enable_technical_info', 'site_language_enabled', 'show_top_uploader', 'imdb_language', 'offer_skip_approved_count', - 'upload_deny_approval_deny_count' + 'upload_deny_approval_deny_count', 'enable_global_search' ); GetVar($validConfig); $MAIN = []; @@ -811,21 +811,20 @@ elseif ($action == 'mainsettings') // main settings yesorno($lang_settings['row_enable_nfo'],'enablenfo', $MAIN['enablenfo'], $lang_settings['text_enable_nfo_note']); yesorno($lang_settings['row_enable_technical_info'],'enable_technical_info', $MAIN['enable_technical_info'], $lang_settings['text_enable_technical_info']); yesorno($lang_settings['row_enable_school_system'],'enableschool', $MAIN['enableschool'], $lang_settings['text_school_system_note']); + yesorno($lang_settings['row_enable_global_search_system'],'enable_global_search', $MAIN['enable_global_search'], $lang_settings['text_global_search_system_note']); yesorno($lang_settings['row_restrict_email_domain'],'restrictemail', $MAIN['restrictemail'], $lang_settings['text_restrict_email_domain_note']); yesorno($lang_settings['row_show_shoutbox'],'showshoutbox', $MAIN['showshoutbox'], $lang_settings['text_show_shoutbox_note']); yesorno($lang_settings['row_show_funbox'],'showfunbox', $MAIN['showfunbox'], $lang_settings['text_show_funbox_note']); yesorno($lang_settings['row_enable_offer_section'],'showoffer', $MAIN['showoffer'], $lang_settings['text_offer_section_note']); yesorno($lang_settings['row_show_donation'],'donation', $MAIN['donation'], $lang_settings['text_show_donation_note']); -// if (THISTRACKER == "HDStar") - yesorno($lang_settings['row_show_special_section'],'spsct', $MAIN['spsct'], $lang_settings['text_show_special_section_note']); yesorno($lang_settings['row_weekend_free_uploading'],'sptime', $MAIN['sptime'], $lang_settings['text_weekend_free_uploading_note']); yesorno($lang_settings['row_enable_helpbox'],'showhelpbox', $MAIN['showhelpbox'], $lang_settings['text_helpbox_note']); yesorno($lang_settings['row_enable_bitbucket'],'enablebitbucket', $MAIN['enablebitbucket'], $lang_settings['text_bitbucket_note']); yesorno($lang_settings['row_enable_small_description'],'smalldescription', $MAIN['smalldescription'], $lang_settings['text_small_description_note']); -// if (THISTRACKER == "PTShow") yesorno($lang_settings['row_ptshow_naming_style'],'altname', $MAIN['altname'], $lang_settings['text_ptshow_naming_style_note']); yesorno($lang_settings['row_use_external_forum'],'extforum', $MAIN['extforum'], $lang_settings['text_use_external_forum_note']); tr($lang_settings['row_external_forum_url']," ".$lang_settings['text_external_forum_url_note'], 1); + yesorno($lang_settings['row_show_special_section'],'spsct', $MAIN['spsct'], $lang_settings['text_show_special_section_note']); $res = sql_query("SELECT id, name FROM searchbox") or sqlerr(__FILE__, __LINE__); $catlist = ""; $bcatlist = $scatlist = ''; @@ -834,7 +833,6 @@ elseif ($action == 'mainsettings') // main settings $scatlist .= "".$array['name']." "; } tr($lang_settings['row_torrents_category_mode'], $bcatlist."
".$lang_settings['text_torrents_category_mode_note'], 1); -// if (THISTRACKER == "HDStar") tr($lang_settings['row_special_category_mode'], $scatlist."
".$lang_settings['text_special_category_mode_note'], 1); $allSiteLanguages = \App\Models\Language::query()->where('site_lang', 1)->get(); diff --git a/public/userdetails.php b/public/userdetails.php index 31f94663..0f1ff087 100644 --- a/public/userdetails.php +++ b/public/userdetails.php @@ -123,6 +123,7 @@ if ($CURUSER['id'] == $user['id'] || user_can('cruprfmanage')) $userIdDisplay = $user['id']; $userManageSystemUrl = sprintf('%s/%s/users/%s',getSchemeAndHttpHost(), nexus_env('FILAMENT_PATH', 'nexusphp'), $user['id']); $userManageSystemText = sprintf('%s', $userManageSystemUrl, $lang_functions['text_management_system']); +$migratedHelp = sprintf($lang_userdetails['change_field_value_migrated'], $userManageSystemText); if (user_can('prfmanage') && $user["class"] < get_user_class()) { $userIdDisplay .= " [$userManageSystemText]"; } @@ -587,8 +588,7 @@ JS; print("".$lang_userdetails['text_no_warned']."\n"); } print(""); - tr($lang_userdetails['row_enabled'], "".$lang_userdetails['radio_yes']."".$lang_userdetails['radio_no'], 1); -// tr($lang_userdetails['row_enabled'], $lang_userdetails['disable_user_migrated'], 1); + tr($lang_userdetails['row_enabled'], $migratedHelp, 1); tr($lang_userdetails['row_forum_post_possible'], "".$lang_userdetails['radio_yes']."".$lang_userdetails['radio_no'], 1); tr($lang_userdetails['row_upload_possible'], "".$lang_userdetails['radio_yes']."".$lang_userdetails['radio_no'], 1); tr($lang_userdetails['row_download_possible'], "".$lang_userdetails['radio_yes']."".$lang_userdetails['radio_no'], 1); @@ -606,7 +606,6 @@ JS; if (user_can('cruprfmanage')) { - $migratedHelp = sprintf($lang_userdetails['change_field_value_migrated'], $userManageSystemText); tr($lang_userdetails['row_amount_uploaded'], "".$migratedHelp, 1); tr($lang_userdetails['row_amount_downloaded'], "".$migratedHelp, 1); tr($lang_userdetails['row_seeding_karma'], "".$migratedHelp, 1); diff --git a/resources/lang/en/plugin.php b/resources/lang/en/plugin.php new file mode 100644 index 00000000..620799db --- /dev/null +++ b/resources/lang/en/plugin.php @@ -0,0 +1,33 @@ + [ + 'install' => 'Install', + 'delete' => 'Remove', + 'update' => 'Upgrade', + ], + 'labels' => [ + 'display_name' => 'Name', + 'package_name' => 'Package name', + 'remote_url' => 'Repository address', + 'installed_version' => 'Installed version', + 'status' => 'Status', + 'updated_at' => 'Last action at', + ], + 'status' => [ + \App\Models\Plugin::STATUS_NORMAL => 'Normal', + \App\Models\Plugin::STATUS_NOT_INSTALLED => 'Not installed', + + \App\Models\Plugin::STATUS_PRE_INSTALL => 'Ready to install', + \App\Models\Plugin::STATUS_INSTALLING => 'Installing', + \App\Models\Plugin::STATUS_INSTALL_FAILED => 'Install fail', + + \App\Models\Plugin::STATUS_PRE_UPDATE => 'Ready to upgrade', + \App\Models\Plugin::STATUS_UPDATING => 'Upgrading', + \App\Models\Plugin::STATUS_UPDATE_FAILED => 'Upgrade fail', + + \App\Models\Plugin::STATUS_PRE_DELETE => 'Ready to remove', + \App\Models\Plugin::STATUS_DELETING => 'Removing', + \App\Models\Plugin::STATUS_DELETE_FAILED => 'Remove fail', + ], +]; diff --git a/resources/lang/en/user.php b/resources/lang/en/user.php index 8524f42e..705a56dd 100644 --- a/resources/lang/en/user.php +++ b/resources/lang/en/user.php @@ -29,4 +29,13 @@ return [ 'change_username_lte_min_interval' => 'Last change time: :last_change_time, unmet minimum interval: :interval days', 'destroy_by_admin' => 'Physical delete by administrator', 'disable_by_admin' => 'Disable by administrator', + 'genders' => [ + \App\Models\User::GENDER_MALE => 'Male', + \App\Models\User::GENDER_FEMALE => 'Female', + \App\Models\User::GENDER_UNKNOWN => 'Unknown', + ], + 'grant_props_notification' => [ + 'subject' => 'Get Props::name', + 'body' => ':operator Grant you :name, Validity period: :duration.', + ], ]; diff --git a/resources/lang/zh_CN/user.php b/resources/lang/zh_CN/user.php index ad427709..96d3647a 100644 --- a/resources/lang/zh_CN/user.php +++ b/resources/lang/zh_CN/user.php @@ -29,4 +29,13 @@ return [ 'change_username_lte_min_interval' => '上次修改时间::last_change_time,未满足最小间隔::interval 天', 'destroy_by_admin' => '被管理员物理删除', 'disable_by_admin' => '被管理員封禁', + 'genders' => [ + \App\Models\User::GENDER_MALE => '男', + \App\Models\User::GENDER_FEMALE => '女', + \App\Models\User::GENDER_UNKNOWN => '未知', + ], + 'grant_props_notification' => [ + 'subject' => '获得道具::name', + 'body' => ':operator 授予你 :name, 有效期::duration。', + ], ]; diff --git a/resources/lang/zh_TW/plugin.php b/resources/lang/zh_TW/plugin.php new file mode 100644 index 00000000..a3700e24 --- /dev/null +++ b/resources/lang/zh_TW/plugin.php @@ -0,0 +1,33 @@ + [ + 'install' => '安裝', + 'delete' => '刪除', + 'update' => '升級', + ], + 'labels' => [ + 'display_name' => '名稱', + 'package_name' => '包名', + 'remote_url' => '倉庫地址', + 'installed_version' => '已安裝版本', + 'status' => '狀態', + 'updated_at' => '上次執行操作', + ], + 'status' => [ + \App\Models\Plugin::STATUS_NORMAL => '正常', + \App\Models\Plugin::STATUS_NOT_INSTALLED => '未安裝', + + \App\Models\Plugin::STATUS_PRE_INSTALL => '準備安裝', + \App\Models\Plugin::STATUS_INSTALLING => '安裝中', + \App\Models\Plugin::STATUS_INSTALL_FAILED => '安裝失敗', + + \App\Models\Plugin::STATUS_PRE_UPDATE => '準備升級', + \App\Models\Plugin::STATUS_UPDATING => '升級中', + \App\Models\Plugin::STATUS_UPDATE_FAILED => '升級失敗', + + \App\Models\Plugin::STATUS_PRE_DELETE => '準備刪除', + \App\Models\Plugin::STATUS_DELETING => '刪除中', + \App\Models\Plugin::STATUS_DELETE_FAILED => '刪除失敗', + ], +]; diff --git a/resources/lang/zh_TW/user.php b/resources/lang/zh_TW/user.php index 9f5c1a80..8e8de316 100644 --- a/resources/lang/zh_TW/user.php +++ b/resources/lang/zh_TW/user.php @@ -29,4 +29,13 @@ return [ 'change_username_lte_min_interval' => '上次修改時間::last_change_time,未滿足最小間隔::interval 天', 'destroy_by_admin' => '被管理員物理刪除', 'disable_by_admin' => '被管理员封禁', + 'genders' => [ + \App\Models\User::GENDER_MALE => '男', + \App\Models\User::GENDER_FEMALE => '女', + \App\Models\User::GENDER_UNKNOWN => '未知', + ], + 'grant_props_notification' => [ + 'subject' => '獲得道具::name', + 'body' => ':operator 授予你 :name, 有效期::duration。', + ], ];