vendredi 11 novembre 2016

create authentication laravel 5

I have these 2 tables with many to many relationship connected using a junction table. The idea is that I can get the user data to make the user an author in a journal data and it works so far.

User table :

public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->integer('phone')->nullable();
            $table->string('address')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->enum('level', ['admin', 'author']);
            $table->timestamps();
        });
    }

Journal table :

public function up()
    {
        Schema::create('journal', function (Blueprint $table) {
            $table->increments('id');
            $table->string('title', 255);
            $table->text('abstract');
            $table->text('file');
            $table->integer('id_edition')->unsigned();
            $table->timestamps();
        });
    }

Junction table :

public function up()
    {
        Schema::create('penulis', function (Blueprint $table) {
            // Create tabel penulis
            $table->integer('id_user')->unsigned()->index();
            $table->integer('id_journal')->unsigned()->index();
            $table->timestamps();
            // Set PK
            $table->primary(['id_user', 'id_journal']);
            // Set FK penulis --- user
            $table->foreign('id_user')
                  ->references('id')
                  ->on('users')
                  ->onDelete('cascade')
                  ->onUpdate('cascade');
            // Set FK penulis --- journal
            $table->foreign('id_journal')
                  ->references('id')
                  ->on('journal')
                  ->onDelete('cascade')
                  ->onUpdate('cascade');
        });
    }

Now I have this view that shows journals data along with the buttons to edit or delete it. What I want to make is that only the user that are entitled as the author of the journal that has the capacity to access these buttons. How do I make it ? below is the view code :

<tbody>
                                        <?php foreach ($journal_list as $journal): ?>
                                            <tr>
                                                <td style=""><a href=""></a></td>

                                                @if (Auth::check())
                                                <td style="width: 130px; overflow: hidden;">
                                                    <div class="box-button">
                                                        
                                                    </div>
                                                    <div class="box-button">
                                                        {!! Form::open(['method' => 'DELETE', 'action' => ['JournalController@destroy', $journal->id]]) !!}
                                                        {!! Form::submit('Delete', ['class' => 'btn btn-danger btn-sm']) !!}
                                                        {!! Form::close() !!}
                                                    </div>
                                                </td>
                                                @endif

                                            </tr>
                                        <?php endforeach ?>
                                    </tbody>

Sorry for my bad English and if my question is stupid. Thanks!



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire