From 9da830d1b215a5a07684db218575c15ec15000fc Mon Sep 17 00:00:00 2001 From: DariusIII Date: Thu, 16 Oct 2025 17:00:32 +0200 Subject: [PATCH] Add privacy policy --- app/Http/Controllers/BasePageController.php | 2 +- .../Controllers/PrivacyPolicyController.php | 19 +++ resources/views/privacy-policy.blade.php | 120 ++++++++++++++++++ routes/web.php | 2 + 4 files changed, 142 insertions(+), 1 deletion(-) create mode 100644 app/Http/Controllers/PrivacyPolicyController.php create mode 100644 resources/views/privacy-policy.blade.php diff --git a/app/Http/Controllers/BasePageController.php b/app/Http/Controllers/BasePageController.php index 1d91b6ab0..e87ea6246 100644 --- a/app/Http/Controllers/BasePageController.php +++ b/app/Http/Controllers/BasePageController.php @@ -48,7 +48,7 @@ class BasePageController extends Controller */ public function __construct() { - $this->middleware(['auth', 'web', '2fa'])->except('api', 'contact', 'showContactForm', 'callback', 'getNzb', 'terms', 'capabilities', 'movie', 'apiSearch', 'tv', 'details', 'failed', 'showRssDesc', 'fullFeedRss', 'categoryFeedRss', 'cartRss', 'myMoviesRss', 'myShowsRss', 'release', 'reset', 'showLinkRequestForm'); + $this->middleware(['auth', 'web', '2fa'])->except('api', 'contact', 'showContactForm', 'callback', 'getNzb', 'terms', 'privacyPolicy', 'capabilities', 'movie', 'apiSearch', 'tv', 'details', 'failed', 'showRssDesc', 'fullFeedRss', 'categoryFeedRss', 'cartRss', 'myMoviesRss', 'myShowsRss', 'release', 'reset', 'showLinkRequestForm'); // Buffer settings/DB connection. $this->settings = new Settings; diff --git a/app/Http/Controllers/PrivacyPolicyController.php b/app/Http/Controllers/PrivacyPolicyController.php new file mode 100644 index 000000000..9d8c400c6 --- /dev/null +++ b/app/Http/Controllers/PrivacyPolicyController.php @@ -0,0 +1,19 @@ +settings->privacy_policy ?? null; + return view('privacy-policy', compact('title', 'meta_title', 'meta_keywords', 'meta_description', 'privacy_content')); + } +} diff --git a/resources/views/privacy-policy.blade.php b/resources/views/privacy-policy.blade.php new file mode 100644 index 000000000..468158ac5 --- /dev/null +++ b/resources/views/privacy-policy.blade.php @@ -0,0 +1,120 @@ +@extends('layouts.app') + +@section('content') +
+
+
+ +
+

Privacy Policy

+ +
+ + +
+ +
+ Your privacy is important to us. This policy outlines how we collect, use, and protect your personal information. +
+
+ + +
+
+ @if($privacy_content) + {!! $privacy_content !!} + @else +

1. Information We Collect

+

When you use {{ config('app.name') }}, we may collect the following types of information:

+
    +
  • Account Information: Username, email address, and password when you register.
  • +
  • Cookies: We use cookies to maintain your session and preferences.
  • +
+ +

2. How We Use Your Information

+

We use the collected information for the following purposes:

+
    +
  • To provide and maintain our service
  • +
  • To authenticate and authorize your access
  • +
  • To improve and personalize your experience
  • +
  • To communicate with you about service updates or account issues
  • +
  • To detect, prevent, and address technical issues or security threats
  • +
  • To comply with legal obligations
  • +
+ +

3. Data Storage and Security

+

We take the security of your personal information seriously:

+
    +
  • All passwords are securely hashed using industry-standard encryption
  • +
  • We implement appropriate technical and organizational measures to protect your data
  • +
+

However, no method of transmission over the Internet or electronic storage is 100% secure. While we strive to use commercially acceptable means to protect your personal information, we cannot guarantee its absolute security.

+ +

4. Information Sharing and Disclosure

+

We do not sell, trade, or rent your personal information to third parties. We may share your information only in the following circumstances:

+
    +
  • Legal Requirements: When required by law, court order, or government regulation
  • +
  • Service Protection: To protect the rights, property, or safety of {{ config('app.name') }}, our users, or the public
  • +
+ +

5. Data Retention

+

We retain your personal information for as long as necessary to:

+
    +
  • Provide our services to you
  • +
  • Comply with legal obligations
  • +
  • Resolve disputes
  • +
+

When you delete your account, we will delete or anonymize your personal information, unless we are required to retain it for legal purposes.

+ +

6. Your Rights and Choices

+

You have the following rights regarding your personal information:

+
    +
  • Access: Request access to the personal information we hold about you
  • +
  • Correction: Request correction of inaccurate or incomplete information
  • +
  • Deletion: Request deletion of your account and associated data
  • +
+

To exercise these rights, please contact us through your account settings or the contact methods provided on our website.

+ +

7. Cookies and Tracking Technologies

+

We use cookies and similar tracking technologies to:

+
    +
  • Maintain your login session
  • +
  • Remember your preferences (such as dark mode settings)
  • +
  • Analyze site usage and performance
  • +
+

You can control cookie settings through your browser preferences. Note that disabling cookies may affect the functionality of our service.

+ +

8. Third-Party Services

+

Our service may contain links to third-party websites or integrate with third-party services. We are not responsible for the privacy practices of these third parties. We encourage you to review their privacy policies before providing any personal information.

+ +

9. Children's Privacy

+

Our service is not intended for users under the age of 18. We do not knowingly collect personal information from children. If we become aware that we have collected personal information from a child without parental consent, we will take steps to delete that information.

+ +

10. International Data Transfers

+

Your information may be transferred to and maintained on servers located outside of your jurisdiction. By using our service, you consent to the transfer of your information to countries that may have different data protection laws than your country of residence.

+ +

11. Changes to This Privacy Policy

+

We may update this Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page and updating the "Last Updated" date below. We encourage you to review this Privacy Policy periodically for any changes.

+ +

12. Contact Us

+

If you have any questions about this Privacy Policy or our data practices, please contact us through the contact methods provided on our website.

+ @endif +
+
+ + +
+ + + Last updated: {{ now()->format('F j, Y') }} + +
+
+
+
diff --git a/routes/web.php b/routes/web.php index 42edeaecc..95411340d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -64,6 +64,7 @@ use App\Http\Controllers\MyMoviesController; use App\Http\Controllers\MyShowsController; use App\Http\Controllers\NfoController; use App\Http\Controllers\PasswordSecurityController; +use App\Http\Controllers\PrivacyPolicyController; use App\Http\Controllers\ProfileController; use App\Http\Controllers\ProfileSecurityController; use App\Http\Controllers\RssController; @@ -86,6 +87,7 @@ Route::post('register', [RegisterController::class, 'register'])->name('register Route::match(['GET', 'POST'], 'forgottenpassword', [ForgotPasswordController::class, 'showLinkRequestForm'])->name('forgottenpassword')->withoutMiddleware(['auth', 'VerifyCsrfToken', 'web']); Route::match(['GET', 'POST'], 'terms-and-conditions', [TermsController::class, 'terms'])->name('terms-and-conditions'); +Route::match(['GET', 'POST'], 'privacy-policy', [PrivacyPolicyController::class, 'privacyPolicy'])->name('privacy-policy'); Route::get('login', [LoginController::class, 'showLoginForm'])->name('login'); Route::post('login', [LoginController::class, 'login'])->name('login.post');