Download the PHP package romegadigital/multitenancy without Composer

On this page you can find all versions of the php package romegadigital/multitenancy. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package multitenancy

Multitenancy Laravel Package

Total Downloads

This package provides a convenient way to add multitenancy to your Laravel application. It manages models and relationships for Tenants, identifies incoming traffic by subdomain, and associates it with a corresponding tenant. Users not linked with a specific subdomain or without a matching tenant in the Tenant table are presented with a 403 error.

Note: Any resources saved while accessing a scoped subdomain will automatically be saved against the current tenant, based on subdomain.

Note: The admin subdomain is reserved for the package to remove all scopes from users with a Super Administrator role.

Table of Contents

Installation

1. Use composer to install the package:

In Laravel 5.5 and newer, the service provider gets registered automatically. For older versions, add the service provider in the config/app.php file:

2. Publish the config file

3. Run the setup

This command will:

4. Update your .env file

The package needs to know your base URL so it can determine what constitutes a tenant by the subdomain.

Add this to your .env file: MULTITENANCY_BASE_URL=

5. Update your User model

Apply the RomegaDigital\Multitenancy\Traits\HasTenants and Spatie\Permission\Traits\HasRoles traits to your User model(s):

Usage

Tenants require a name to identify the tenant and a subdomain that is associated with that user. Example:

tenant1.example.com

tenant2.example.com

Note: You define the base url example.com in the config/multitenancy.php file.

These Tenants could be added to the database like so:

You can then attach user models to the Tenant:

Create Tenants, associate them with Users, and define access rules using provided Middleware. Check the detailed usage guide for examples.

Detailed Usage Guide

1. Models and relationships:

Use Eloquent to access User's tenants (User::tenants()->get()) and Tenant's users (Tenant::users()->get()). Add new tenants and their associated users to the database.

2. Middleware:

Add TenantMiddleware and GuestTenantMiddleware to your app/Http/Kernel.php file and apply them to routes.

Tenant Middleware

Then you can bring multitenancy to your routes using middleware rules:

Guest Tenant Middleware

This package comes with GuestTenantMiddleware middleware which applies the tenant scope to all models and can be used for allowing guest users to access Tenant related pages. You can add it inside your app/Http/Kernel.php file.

Then you can bring multitenancy to your routes using middleware rules:

3. Tenant Assignment for Models:

Make models tenant-aware by adding a trait and migration. Then apply tenant scoping automatically. This allows users to access tenant1.example.com and return the data from tenant1 only.

For example, say you wanted Tenants to manage their own Product. In your Product model, add the BelongsToTenant trait. Then run the provided console command to add the necessary relationship column to your existing products table.

Add tenancy to a model's table: php artisan multitenancy:migration products

4. Access to Current Tenant:

Use app('multitenancy')->currentTenant() to get the current tenant model.

5. Admin Domain Access:

Assign the Super Administrator role to a user to enable access to the admin subdomain. Manually create an admin portal if necessary.

6. Auto-assign Users to Tenants:

Enable ignore_tenant_on_user_creation setting to automatically assign users to the Tenant subdomain on which they are created.

7. Give a user Super Administration rights:

In order to access the admin.example.com subdomain, a user will need the access admin permission. This package relies on Spatie's Laravel Permission package and is automatically included as a dependency when installing this package. We also provide a Super Administrator role on migration that has the relevant permission already associated with it. Assign the Super Administrator role to an admin user to provide the access they need. See the Laravel Permission documentation for more on adding users to the appropriate role and permission.

The Super Administrator is a special user role with privileged access. Users with this role can access all model resources, navigate across different tenants' domains, and gain entry to the admin subdomain where all tenant scopes are disabled.

When a user is granted the Super Administrator role, they can freely access the admin subdomain. In this context, tenant scopes aren't applied. This privilege allows Super Administrators to manage data across all instances without requiring specific access to each individual tenant's account.

Give a user Super Administration rights: php artisan multitenancy:super-admin [email protected]

Managing with Nova

You can manage the resources of this package in Nova with the MultitenancyNovaTool.

Testing Package

Run tests with the command:

php vendor/bin/testbench package:test


All versions of multitenancy with dependencies

PHP Build Version
Package Version
Requires spatie/laravel-permission Version ^5.10
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package romegadigital/multitenancy contains the following files

Loading the files please wait ....