bantenprov/advancetrust

Laravel package untuk mengolah role / hak akses pengguna aplikasi

1.0.3 2017-12-14 13:23 UTC

This package is not auto-updated.

Last update: 2024-07-21 03:04:09 UTC


README

This package inspired and extend the santigarcor/laratrust.

Scrutinizer Code Quality Build Status Latest Stable Version Software License Total Downloads

DEMO

Demo for this package is available here Role

Version

Install

  • Advancetrust for laravel : composer require bantenprov/advancetrust "1.0.1"

  • Advancetrust for laravel with vue js : composer require bantenprov/advancetrust "1.0.2"

  • Advancetrust available API request : composer require bantenprov/advancetrust "1.0.3"

1. In your config/app.php add for laravel <= 5.4 only:

'providers' => array(

    App\Providers\EventServiceProvider::class,
    App\Providers\RouteServiceProvider::class,
    ...
    Bantenprov\Advancetrust\advancetrustServiceProvider::class,
    Bantenprov\LaravelApiManager\LaravelApiManagerServiceProvider::class,
    Laratrust\LaratrustServiceProvider::class,
    Collective\Html\HtmlServiceProvider::class,
    'That0n3guy\Transliteration\TransliterationServiceProvider',

),
'aliases' => [

    'Validator' => Illuminate\Support\Facades\Validator::class,
    'View' => Illuminate\Support\Facades\View::class,
    ...
    'Laratrust'   => Laratrust\LaratrustFacade::class,
    'Form' => Collective\Html\FormFacade::class,
    'Html' => Collective\Html\HtmlFacade::class,

2. php artisan

$ php artisan vendor:publish --tag="laratrust"
$ php artisan vendor:publish
$ php artisan laratrust:setup
$ php artisan laratrust:seeder
$ php artisan laravel-api-manager:add-route
$ php artisan migrate
$ composer dump-autoload
$ php artisan db:seed --class=LaratrustSeeder
$ php artisan serve

Please run this available command after finished installation

$ php artisan advancetrust:add-route
$ php artisan advancetrust:create-controller
$ php artisan advancetrust:create-view
$ php artisan advancetrust:version

Add authentication to use the package

$ php artisan make:auth

Edit resources/views/home.blade.php

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row">
        <div class="col-md-8 col-md-offset-2">
            <div class="panel panel-default">
                <div class="panel-heading">Dashboard</div>

                <div class="panel-body">
                    @if (session('status'))
                        <div class="alert alert-success">
                            {{ session('status') }}
                        </div>
                    @endif
                    {{-- 
                    add menu content here
                    --}}
                    @yield('advancetrust_content')
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

Server config

Tambahkan pada .env anda parameter berikut

  1. Host yang digunakan sebagai role controller sebagai eksekutor penambahan role
BANTENPROV_ROLEHOST=rolehost.domain.tld

setting ini harus digunakan pada semua site yang menggunakan advantrust.

  1. Host yang digunakan sebagai requestor penambahan role
BANTENPROV_DRIVERHOST=driverhost.domain.tld

Contoh penggunaan

Request menggunakan guzzle pada client

Request menggunakan package guzzle caranya install terlebih dahulu package guzzle dengan cara : composer require guzzlehttp/guzzle

pada client tambahkan BANTENPROV_ROLEHOST=http://localhost:8000 pada file .env Host yang digunakan sebagai role controller sebagai eksekutor penambahan role

pada contoh di atas menggunakan http://localhost:8000 sebagai host

// method get 

Route::get('/guzzle/permission/get',function(){
    $hostname = \Request::root();
    $client = new GuzzleHttp\Client(['base_uri' => env('BANTENPROV_ROLEHOST').'/api/v1/advancetrust/']);    
    $response = $client->request('GET', 'permission',[
                                        'headers' => [
                                            'secret_key' => 'QwQjR4V8VKXqvWR3l7v056VU9l2d2JKkcXvM9GQKYhn8J5gsGKNdEYj6cHaoP5HOne51TwSRk4CT0ksZjCUCEEKi6V1a34bQqXEI',
                                            'client' => $hostname
                                        ]
    ]);    
    
    return $response->getBody();

});

Route::get('/guzzle/role/get',function(){
    $hostname = \Request::root();
    $client = new GuzzleHttp\Client(['base_uri' => env('BANTENPROV_ROLEHOST').'/api/v1/advancetrust/']);    
    $response = $client->request('GET', 'role',[
                                        'headers' => [
                                            'secret_key' => 'QwQjR4V8VKXqvWR3l7v056VU9l2d2JKkcXvM9GQKYhn8J5gsGKNdEYj6cHaoP5HOne51TwSRk4CT0ksZjCUCEEKi6V1a34bQqXEI',
                                            'client' => $hostname
                                        ]
    ]);    

    return $response->getBody();
        
});


//method post

Route::get('/guzzle/permission/post',function(){
    
    $hostname = \Request::root();
    $client = new GuzzleHttp\Client(['base_uri' => env('BANTENPROV_ROLEHOST').'/api/v1/advancetrust/']);    
    $response = $client->request('POST', 'permission/store',[
                                        'headers' => [
                                            'secret_key' => 'QwQjR4V8VKXqvWR3l7v056VU9l2d2JKkcXvM9GQKYhn8J5gsGKNdEYj6cHaoP5HOne51TwSRk4CT0ksZjCUCEEKi6V1a34bQqXEI',
                                            'client' => $hostname
                                        ],
                                        'form_params' => [
                                            'name' => 'example name',
                                            'description' => 'example description',
                                            'display_name' => 'example display name'
                                        ]
    ]);    

    return $response->getBody();

});


Route::get('/guzzle/role/post',function(){
    
    $hostname = \Request::root();
    $client = new GuzzleHttp\Client(['base_uri' => env('BANTENPROV_ROLEHOST').'/api/v1/advancetrust/']);    
    $response = $client->request('POST', 'role/store',[
                                        'headers' => [
                                            'secret_key' => 'QwQjR4V8VKXqvWR3l7v056VU9l2d2JKkcXvM9GQKYhn8J5gsGKNdEYj6cHaoP5HOne51TwSRk4CT0ksZjCUCEEKi6V1a34bQqXEI',
                                            'client' => $hostname
                                        ],
                                        'form_params' => [
                                            'name' => 'example name',
                                            'description' => 'example description',
                                            'display_name' => 'example display name'
                                        ]
    ]);    

    return $response->getBody();

});

secret key secret_key

ini dibuat menggunakan package laravel-api-manager, caranya akses pada browser : http://localhost:8000/api_manager dan tambahkan data baru. client : localhost:9090 description : cient

setelah berhasil di tambahkan

gunakan api keys untuk pada value secret_key pada header 'secret_key' => 'api_keys'

Pada host tambahkan BANTENPROV_DRIVERHOST=http://localhost:9090 pada file .env Host yang digunakan sebagai requestor penambahan role

jadi pada contoh ini host yang diberi hak akses untuk melakukan penambahan data baru sesuai dengan BANTENPROV_DRIVERHOST yaitu http://localhost:9090 dan selain dari http://localhost:9090 hanya mempunyai hak akses untuk meminta data dari http://localhost:8000

command run server pada client :

$ php artisan serve --port=9090

command run server pada host :

$ php artisan serve

jika masih binggung untuk cara penggunaan guzzle silahkan baca-baca dokumentasinya disini

The MIT License (MIT). Please see License File for more information.