techlify-inc / laravel-core-module
A Core Laravel Module consisting of feature modules
Requires
- php: >=8.2
- intervention/image: ^2.5
- laravel/framework: >=11.0
- tucker-eric/eloquentfilter: ^3.2
Requires (Dev)
- kreait/firebase-php: ^7.13
- orchestra/testbench: ^9.1
- phpunit/phpunit: ^10.5
- dev-master
- 11.0.1
- 10.26.1
- 10.26.0
- 10.25.2
- 10.25.1
- 10.25.0
- 10.24.0
- 10.23.0
- 10.22.1-alpha
- 10.22.0
- 10.21.1
- 10.21.0
- 10.20.0
- 10.19.0
- 10.18.1
- 10.18.0
- 10.17.5
- 10.17.4
- 10.17.3
- 10.17.2
- 10.17.1
- 10.17.0
- 10.16.0
- 10.15
- 10.14.3
- 10.14.2
- 10.14
- 10.13.8
- 10.13.7
- 10.13.6
- 10.13.5
- 10.13.4
- 10.13.3
- 10.13.2
- 10.13.0
- 10.12.2
- 10.12.1
- 10.12.0
- 10.11.7
- 10.11.6
- 10.11.5
- 10.11.4
- 10.11.3
- 10.11.1
- 10.11
- 10.10.2
- 10.10.1
- 10.10.0
- 10.9.1
- 10.9
- 10.8.1
- 10.7.7
- 10.7.6
- 10.7.5
- 10.7.4
- 10.7.3
- 10.7.2
- 10.7.1
- 10.7.0
- 10.6.4
- 10.6.3
- 10.6.2
- 10.6.1
- 10.6
- 10.5
- 10.4
- 10.3
- 10.2.1
- 10.2.0
- 10.1.0-alpha-1
- 10.0.9-alpha-1
- 10.0.8
- 10.0.7
- 10.0.6
- 10.0.5
- 10.0.5-beta-1
- 10.0.4
- 10.0.3
- 10.0.1
- 10.0.0-beta-1
- 9.2.3
- 9.2.3-beta-4
- 9.2.3-beta-3
- 9.2.3-beta-2
- 9.2.3-beta-1
- 9.2.2-beta-4
- 9.2.2-beta-3
- 9.2.2-beta-2
- 9.2.2-beta
- 9.2.1
- 9.2.1-beta
- 9.2.0
- 9.1.0
- 9.0.6
- 9.0.3
- 9.0.2
- 9.0.0
- 1.3.7
- 1.3.6
- 1.3.5
- 1.3.5-beta.2
- 1.3.5-beta.1
- 1.3.5-alpha.3
- 1.3.5-alpha.2
- 1.3.5-alpha.1
- 1.3.5-alpha
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.9
- 1.2.8
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.9
- 1.1.8
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.2-alpha
- 1.0.1
- 1.0.1-alpha
- 1.0.0
- 1.0.0-alpha
- 0.9.9
- 0.9.8
- 0.9.7
- 0.9.6
- 0.9.5
- 0.9.4
- 0.9.3
- 0.9.2
- 0.9.1
- 0.9.0
- 0.8.9
- 0.8.8
- 0.8.7
- 0.8.6
- 0.8.5
- 0.8.4
- 0.8.3
- 0.8.2
- 0.8.1
- 0.8.0
- 0.7.9.4
- 0.7.9.3
- 0.7.9.2
- 0.7.9.1
- 0.7.9
- 0.7.8
- 0.7.7
- 0.7.6
- 0.7.5
- 0.7.4
- 0.7.3
- 0.7.2
- 0.7.1
- 0.7.0
- 0.6.9
- 0.6.8
- 0.6.7
- 0.6.6
- 0.6.5
- 0.6.4
- 0.6.3
- 0.6.2
- 0.6.1
- 0.6.0.x-dev
- 0.6.0
- 0.5.0.x-dev
- 0.5.0
- 0.4.0
- 0.1.0
- dev-release/10.26.1
- dev-release/10.26
- dev-release/10.25.2
- dev-TECHLIFYHR-1995
- dev-TECHLIFYHR-1842
- dev-TECHLIFYHR-1996
- dev-release/11.0.1
- dev-release/11.0.0
- dev-release/10.25.1
- dev-release/11
- dev-release/10.25
- dev-release/10.24
- dev-release/10.23
- dev-SS-35
- dev-release/10.22
- dev-TECHLIFYHR-1793
- dev-TECHLIFYHR-1495
- dev-release/10.21
- dev-TW-781
- dev-release/10.20
- dev-version-updated-10.20
- dev-SD-348
- dev-release/10.19
- dev-SD-331
- dev-release/10.18.1
- dev-release/10.18
- dev-release/10.17.3
- dev-release/10.17.4
- dev-release/10.17.5
- dev-release/10.17.2
- dev-release/10.17.1
- dev-release/10.17.0
- dev-release/10.16.0
- dev-release/10.15
- dev-release/10.14
- dev-Bhagirath-Dangar/composerjson-edited-online-with-bitbucke-1725898790201
- dev-Bhagirath-Dangar/version-updated-1725898483598
- dev-CGY-18
- dev-release/10.13.7
- dev-release/10.13.8
- dev-release/10.13.4
- dev-release/10.13.3
- dev-release/10.13
- dev-release/10.13.1
- dev-release/10.12.2
- dev-release/10.12.1
- dev-TECHLIFYHR-1357
- dev-release/10.12
- dev-release/10.11.6
- dev-release/10.11.7
- dev-release/10.11.5
- dev-release/10.11.4
- dev-release/10.11.3
- dev-release/10.11.1
- dev-shemar-rbac-role-permission-check
- dev-release/10.11
- dev-release/10.10.3
- dev-TECHLIFYHR-1242
- dev-release/10.10.2
- dev-release/10.10.1
- dev-bugfix/techlify-import-entities-check-if-exists
- dev-release/10.10
- dev-release/10.9.1
- dev-release/10.9
- dev-release/10.8.1
- dev-release/10.8.2
- dev-release/10.8.0
- dev-release/10.7.6
- dev-release/10.7.5
- dev-release/10.7.4
- dev-release/10.7.3
- dev-release/10.7.2
- dev-release/10.7.1
- dev-release/10.7.0
- dev-release/10.6.4
- dev-release/10.6.5
- dev-release/10.6.3
- dev-release/10.6.2
- dev-release/9.2.3
- dev-release/10.6.1
- dev-goku/urgent-patch
- dev-release/10.6
- dev-release/10.5
- dev-release/10.4
- dev-release/10.3
- dev-release/10.2.1
- dev-release/10.2.2
- dev-release/10.2.0
- dev-release/10.1.0
- dev-release/10.1.1
- dev-release/10.0.9
- dev-GEMR-187-notficiation-workflow-updates
- dev-release/10.0.8
- dev-feature/locations-integration
- dev-GEMR-save-user-stamp-information
- dev-GEMR-70-save-user-location
- dev-release/10.0.7
- dev-release/10.0.6
- dev-release/10.0.5
- dev-goku/laravel-upgrade-fix
- dev-release/10.0.3
- dev-release/10.0.4
- dev-release/10.0.2
- dev-feature/note-created-event-emit
- dev-release/10.0.1
- dev-SMAR-58
- dev-release/10.0.0
- dev-feature/user_create_and_edit_form_password_validation
- dev-release/9.2.2
- dev-release/9.2.1
- dev-release/9.2.0
- dev-feature/roles-index-api-imrovements
- dev-feature/restrictors
- dev-SMAR-27_2
- dev-feature/access-control-configuration-improvements
- dev-release/9.1.1
- dev-release/9.1.0
- dev-feature/techlify-user-model-setup
- dev-release/9.0.6
- dev-feature/techlify-notitification-merge
- dev-TECHLIFYHR-1149
- dev-feature/help-hub
- dev-release/9.0.5
- dev-release/9.0.4
- dev-release/9.0.3
- dev-bm-spares-10263
- dev-release/9.0.2
- dev-release/9.0.1
- dev-release/9.0
- dev-release/1.4
- dev-bm-spares-9397
- dev-release/1.0
- dev-release/1.3.6
- dev-new-packaging-system
- dev-feature/new-subscriptions
- dev-customer-user
- dev-quick_fix_0.2
- dev-release/0.7
- dev-deploy
- dev-release/0.4
This package is auto-updated.
Last update: 2025-03-25 22:41:09 UTC
README
This is the core module used by Techlify for projects. It contains the basis for
- user management
- module management
- client management
Installation
Install this package with composer using the following command:
composer require techlify-inc/laravel-core
Run migrations
$ php artisan migrate
Add the Rbac trait to your User
model
class User extends Authenticatable
{
use TechlifyInc\LaravelRbac\Traits\LaravelRbac;
}
Usage
Roles
Creating roles
use \TechlifyInc\LaravelRbac\Models\Role;
$adminRole = Role::create([
'name' => 'Administrator',
'slug' => 'admin'
]);
$managerRole = Role::create([
'name' => 'Manager',
'slug' => 'manager'
]);
Assigning And Removing Roles
You can simple attach role to user:
use App\Models\User;
$user = User::find(1);
$user->attachRole($adminRole);
//or you can attach using the role slug
$user->attachRole("admin");
And the same if you want to detach role:
$user->detachRole($adminRole);
//or you can remove using the role slug
$user->detachRole("admin");
Checking for roles
You can simple check if user has role:
use App\Models\User;
$user = User::find(1);
if ($user->hasRole('admin')) {
}
Permissions
Creating permissions
use \TechlifyInc\LaravelRbac\Models\Permission;
$createPermission = Permission::create([
'name' => 'Create product',
'slug' => 'product.create'
]);
$removePermission = Permission::create([
'name' => 'Delete product',
'slug' => 'product.remove'
]);
Attaching And Detaching permissions
You can attach permission to role very simple:
use \TechlifyInc\LaravelRbac\Models\Role;
$adminRole = Role::find(1);
$adminRole->attachPermission($createPermission);
//or you can insert only slug
$adminRole->attachPermission("product.create");
And the same to detach permission:
$adminRole->detachPermission($createPermission);
$adminRole->detachPermission("product.create");
Checking for permissions
You can simple check if user has permission:
use App\Models\User;
$user = User::find(1);
if ($user->hasPermission('product.create')) {
}
// OR for currently logged in user
if (auth()->user()->hasPermission('product.create'))
You can also enforce access control at route level using the middleware; this is enforced in several ways.
- Using permissions:
Route::get("customers", "CustomerController@index")
->middleware("TechlifyAccessControl:customer_view");
OR
Route::get("customers", "CustomerController@index")
->middleware("TechlifyAccessControl:ps:customer_view");
- Using User Type:
Route::get("customers", "CustomerController@index")
->middleware("TechlifyAccessControl:ut:admin");
- Using state to restrict access:
Route::get("customers", "CustomerController@index")
->middleware("TechlifyAccessControl:state:logged-in");
User Management
// Get the set of users
GET api/users
// Get a single user
GET api/users/{id}
// Add a new user
POST api/users
// Update a user record
PATCH api/users/{id}
// Delete a user record
DELETE api/users/{id}
User Password Management
// Change the current user password
POST api/user/current/update-password {current_password, new_password}
User Session Management
// Log out the currently logged in user
POST api/user/logout
// Get the User record of the currently logged in user
GET api/user/current
Entity File Management
There is functionality built into the application providing a dynamic file manager. Entity Files is what it's called.
Configurations
// add this variable to your .env file to supply the maximum
ENTITY_FILE_MAX_UPLOAD_FILE_SIZE=20480 // 20MB
ENTITY_FILE_DISK=.... // Which Disk
ENTITY_FILE_SUB_PATH=.... // Which Disk
The module works on it's own via the built in <entity-files entityType="'Sale'" entityId="sale.id"></entity-files>
angular component in the ngx-techlify-core
package.