سطح بندی پیشرفته کاربران : آشنایی با Gate و Policy

زمان قرارگیری : 12 خرداد 1396
زمان این قسمت : 35:53
برای دسترسی به این دوره نیاز است بصورت نقدی این دوره را خریداری کنید و این دوره بخشی از دوره های اعضای ویژه نمیباشد

تعداد شرکت کنندگان 1181 نفر
قیمت دوره 125000 تومان
وضعیت دوره تکمیل شده
زمان کل دوره 30:19:42
تعداد قسمت‌ها 51
نوع دسترسی نقدی

برای پیاده سازی کردن روش سطح بندی ACL کاربران ابتدا باید با احراز هویت (authorization) در لاراول آشنا باشید در این جلسه شما رو به صورت کامل با  Gate ها و Policy ها آشنا میکنم . تا آماده پیاده سازی کردن ACL بشید . 

رایگان 04:34
برای دسترسی به این دوره نیاز است بصورت نقدی این دوره را خریداری کنید و این دوره بخشی از دوره های اعضای ویژه نمیباشد

تعداد شرکت کنندگان 1181 نفر
قیمت دوره 125000 تومان
وضعیت دوره تکمیل شده
زمان کل دوره 30:19:42
تعداد قسمت‌ها 51
نوع دسترسی نقدی

آفلاین
user-avatar
مدرس دوره حسام موسوی

اول داستان، طراح گرافیک بودم و ۲ سالی به عنوان طراح مشغول بودم، بعد به برنامه‌نویسی علاقمند شدم و الان بیشتر از ۱۰ ساله که عاشق کدزنی و چالش‌های پروژه‌های مختلفم. به تدریس علاقه خاصی دارم و دوست دارم دانشی که در این راه بدست آوردم را در اختیار دیگران هم قرار بدم. 

سوالات و گفتگو‌ها

سوالات و گفتگو‌ها

اگر سوال و مشکلی یا حتی بحثی در یکی از حوزه‌های برنامه‌نویسی دارید این بخش به شما کمک ویژه‌ای خواهد کرد

دورهای پیشنهادی

مشاهده همه دوره ها
آموزش لاراول

آموزش لاراول

فریمورک لاراول یکی از محبوبترین و بهترین فریمورک های حال حاضر برای زبان php می باشد، آموزش لاراول راکت می‌تواند به شکل رایگان به شما لاراول را آموزش د...

آشنایی با امکانات جدید لاراول 6

آشنایی با امکانات جدید لاراول 6

لاراول ۶ به تازگی توسط تیم توسعه دهنده لاراول معرفی شده، ما قصد داریم در این دوره امکانات جدیدی که به واسطه لاراول ۶ در اختیار توسعه دهندگان قرار گرفت...

ساخت Restful Api با Laravel و Lumen

ساخت Restful Api با Laravel و Lumen

به زبان ساده، APIها (مخفف Application Programming Interface) رابط‌هایی نرم‌افزاری هستند که ارتباط بین نرم‌افزارهای مختلف را پیاده‌سازی می‌کنند. در دنی...

آموزش پکیج نویسی لاراول

آموزش پکیج نویسی لاراول

اگر با لاراول و پکیج ها آشنا باشید مطمئنن میدانید که پکیج ها بخش مهمی در لاراول هستند و به برنامه نویسان و توسعه دهندگان لاراول کمک میکنند تا بتوانن ب...

دسترسی رایگان برای اعضای ویژه

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر لازم است ابتدا وارد سایت شوید
آفلاین
user-avatar
saeid
3 ماه پیش

سلام استاد موسوی :در هنگام make:migrate طبق آموزش مقدار پیشفرض برای string قرار میدم Schema::defaultStringLenght(۱۹۱); به این ارور برمیخورم

Symfony\Component\Debug\Exception\FatalThrowableError : Class 'mysql_xdevapi\Schema' not found

at E:\mysite\app\Providers\AppServiceProvider.php:۲۷
۲۳| @return void
۲۴| /
۲۵| public function boot()
۲۶| {

۲۷| Schema::defaultStringLenght(۱۹۱);
۲۸| }
۲۹| }
۳۰|

Exception trace:

۱ App\Providers\AppServiceProvider::boot()
E:\mysite\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:۳۲

۲ call_user_func_array([])
E:\mysite\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:۳۲

Please use the argument -v to see more details.

و موقعی که مقدار پیشفرض برمیدارم ارور برطرف میشه ممنون میشم راهنماییم کنین

آفلاین
user-avatar
حسام موسوی
3 ماه پیش

اشتباه schema رو use فرمودید دوست عزیز !

آفلاین
user-avatar
Meysam Sedigh
5 ماه پیش

سلام مهندس مشکل این error از کجا می تواند باشد ؟
Non-static method Illuminate\Auth\Access\Gate::denies() should not be called statically

آفلاین
user-avatar
حسام موسوی
5 ماه پیش

مشکلش اینجاست که شما namespace اشتباهی رو برای Gate اومدید use کردید.

use Illuminate\Support\Facades\Gate;
// یا
use Gate;

یکدوم از موارد بالا رو میتونید استفاده بفرمایید

آفلاین
user-avatar
ali
9 ماه پیش

با سلام و احترام خدمت شما استاد عزیز
یک سوال داشتم از خدمتتون، اینکه در قسمت کدنویسی سیستم عضویت پیشرفته ( یکماهه، سه ماهه و ... ) توی دوره این مورد هم لحاظ شده است که با خرید هر یک از پکیج های موجود میزان درصد تخفیفی برای دوره های نقدی اعمال شود؟
و اینکه پنل کاربری اعضا دارای امکانات سایت roocket هست ؟
خیلی ممنون از وقتی که گذاشتید

آفلاین
user-avatar
حسام موسوی
9 ماه پیش

سلام خیر
چون این پروژه ازمایش هست و قرار نیست و نبود که دقیقا شبیه به راکت باشه !

آفلاین
user-avatar
ali
9 ماه پیش

سلام مجدد
عذرخواهی میکنم سیستم عضویت که توی این دوره آماده شده، توی توضیحات فرمودید که روش ساخت رو کامل توضیح دادید! چون من این دوره رو فقط جهت یادگیری سیستم عضویت و همینطور سطح بندی قسمت مدیریت میخواستم تهیه کنم.
اگر راهنماییم بفرمائید بسیار ممنون میشم از شما
ممنون و متشکر

آفلاین
user-avatar
حسام موسوی
9 ماه پیش

سیستم عضویت راکت نیست
ولی در مورد عضویت ویژه حرف زدم و پیاده‌سازی کردیم چیزی که نیاز هست رو !

آفلاین
user-avatar
ehsan soleimanian
1 سال پیش

سلام وقت بخیر
من مشکلی روی authorization بر روی یک route دارم .ممنون میشم راهنمایی کنین
روت من :
Route::get('admin/order/{order_id}/{req_id}/confirmed', 'HomeController@index')->name('chat')->middleware('can:show-order,[order_id,req_id]');

و Gate به شکل زیر نوشته شده :
Gate::define('show-order',function ($order,$req){

       return $req->order_id == $order->id;
    });

سوال دیگه اینکه الان توی گیت ، من برای دو مدل غیر از User در حال تاییدیه هستم و میخوام که ای دی سفارش من در درخواست ها با آی دی سفارش تطبیق داده بهش در دو مدل.
پیغام خطایی که دارم این هست :
Trying to get property 'order_id' of non-object
بنده پارامتر ها هم به آبجکت ها تغییر دادم ولی باز خطا میده و ضمن اینکه جایی نتونستم پیدا کنم که چطور مدل ها رو به روت Pass کنم.
ممنون از شما

آفلاین
user-avatar
حسام موسوی
1 سال پیش

شما پارامتر ها رو به شکل id پاس دادید باز تو گیت دارید به شکل obj ازش استفاده میکنید !!!!

آفلاین
user-avatar
Mostafa Nazar
2 سال پیش

سلام
برای اینکه جدول کاربران و مدیر یه جدول دیگه ایجاد کنیم باید چی کار بکنیم . قسمت فرم لاگین و رجیستر هم چه تغییر میکنه. منظورم اینه که جدول کاربران به جای users بشه مثلا tbl_user

آفلاین
user-avatar
حسام موسوی
2 سال پیش

سلام در مورد mutli auth جستجو کنید البته جلسه از این موضوع در یکی از دوره های لاراول هم وجود داره در وبسایت

آفلاین
user-avatar
h programer
2 سال پیش

من دقیقا مثل شما پیاده سازی کردم این ارور رو دارم
Class App\Providers\App\Policies\PostPolicy does not exist

آفلاین
user-avatar
حسام موسوی
2 سال پیش

namespace کلاس مورد نظر رو use نکردید

آفلاین
user-avatar
h programer
2 سال پیش

این رو داخل صفحه authserviseprovider نوشتم اما تاثیری نداشت
use App\Policies;

آفلاین
user-avatar
حسام موسوی
2 سال پیش

شما بفرمایید که PostPolicy رو به چه شکل بکار بردید اون قسمت از کد رو لطفا قرار بدید

آفلاین
user-avatar
h programer
2 سال پیش
<?php

namespace App\Providers;

use App\Policies;
use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;

class AuthServiceProvider extends ServiceProvider
{
    /**
     * The policy mappings for the application.
     *
     * @var array
     */
    protected $policies = [
        \App\Post::class => App\Policies\PostPolicy::class,
    ];

    /**
     * Register any authentication / authorization services.
     *
     * @return void
     */
    public function boot()
    {
        $this->registerPolicies();

//        Gate::define('show-post',function($user,$post)
//        {
//
////            return $user->id==$post->user_id;
//
//        });

    }
}

-----------------------------------

<?php

namespace App\Policies;

use App\User;
use App\post;
use Illuminate\Auth\Access\HandlesAuthorization;

class PostPolicy
{
    use HandlesAuthorization;

    /**
     * Determine whether the user can view the post.
     *
     * @param  \App\User  $user
     * @param  \App\post  $post
     * @return mixed
     */
    public function view(User $user, Post $post)
    {
        return $user->id==$post->user_id;
    }

    /**
     * Determine whether the user can create posts.
     *
     * @param  \App\User  $user
     * @return mixed
     */
    public function create(User $user)
    {
        //
    }

    /**
     * Determine whether the user can update the post.
     *
     * @param  \App\User  $user
     * @param  \App\post  $post
     * @return mixed
     */
    public function update(User $user, post $post)
    {
        //
    }

    /**
     * Determine whether the user can delete the post.
     *
     * @param  \App\User  $user
     * @param  \App\post  $post
     * @return mixed
     */
    public function delete(User $user, post $post)
    {
        //
    }

    /**
     * Determine whether the user can restore the post.
     *
     * @param  \App\User  $user
     * @param  \App\post  $post
     * @return mixed
     */
    public function restore(User $user, post $post)
    {
        //
    }

    /**
     * Determine whether the user can permanently delete the post.
     *
     * @param  \App\User  $user
     * @param  \App\post  $post
     * @return mixed
     */
    public function forceDelete(User $user, post $post)
    {
        //
    }
}

--------------------------------
آفلاین
user-avatar
حسام موسوی
2 سال پیش
    protected $policies = [
        \App\Post::class => \App\Policies\PostPolicy::class,
    ];

به همین سادگی حل میشه

آفلاین
user-avatar
دوسلار
2 سال پیش

خیلی ممنون بابت پاسخگویی همیشگیتون

آفلاین
user-avatar
دوسلار
2 سال پیش

سلام استاد ببخشید
(Episode::create($request->all چیکار میکنه؟

آفلاین
user-avatar
حسام موسوی
2 سال پیش

سلام یعنی این چی چیکار میکنه مگه شما با لاراول آشنا نشدید ؟
لطفا ابتدا دوره آشنایی با لاراول رو مشاهده کنید

آفلاین
user-avatar
دوسلار
2 سال پیش

استاد منظورم اینه که چطوری این تشخیص میده که time دوره رو باید متانسب با تابع ست کنه
ما فقط میگیم ریکوست هارو کرییت کن

آفلاین
user-avatar
حسام موسوی
2 سال پیش

در جلسات آینده به این موارد هم خواهیم رسید

آفلاین
user-avatar
محمد نمازی
2 سال پیش

باسلام

در این آموزش بخش ایجاد کاربر در پنل مدیریت رو ندیدم، اگر فیلمش موجود هست، کدوم فیلم هست ؟

باتشکر

آفلاین
user-avatar
حسام موسوی
2 سال پیش

حضور ذهن ندارم در این دوره هست یا نه ولی این موضوع دقیقا شبیه فورم های دیگه هست اطلاعات کاربر رو میگیرید از فرم و به جدول user اضافه میکنید چیز خاصی نداره

آفلاین
user-avatar
محمد نمازی
2 سال پیش

در این دوره در مورد بخش کاربری صحبت شده اما در مورد ایجاد، ویرایش و لحاظ کردن سطح دسترسی به کاربر جدید وجود نداره.
لطفا چون تازه کارم، این موارد رو در یه بخش دیگری قرار بدید تا بتونم استفاده کنم.

باتشکر

آفلاین
user-avatar
حسام موسوی
2 سال پیش

اتفاقا در جلسات 9 10 در مورد همین ها صحبت شده .
تازه کاری مهم نیست همین که دوره مقددماتی رو دیده باشید و به php هم خوب مسلط باشید با این دوره راه می افتید کامل
لطفا قسمت به قسمت پیش برید و مواردی که گفته میشه انجام بدید حتی اگر امکانی نباشه رو خودتون در پایان این دوره میتونید به سادگی اضافه کنید

آفلاین
user-avatar

سلام
شما برای ساخت مایگریشن ستون user_id رو کلید خارجی نمی کنین و مایگریت می کنین ولی وقتی seed میکنین اون ستون user_id مقدار آی دی هر یوزر قرار میگیره چه جوری همچین چیزی ممکنه؟

آفلاین
user-avatar
حسام موسوی
3 سال پیش

اگر لاراول رو بلد باشید کامل متوجه این موضوع میشین
لطفا ابتدا دوره آشنایی با لاراول سایت رو ببینید و بعد این دوره رو
و اینکه حتما نیاز نیست کلید خارجی برای mysql تعریف بشه چون روابط لاراول کاملا خودش این موضوع رو بوجود میاره

آفلاین
user-avatar

شما در مقدماتی ها از numberbetween استفاده کردید اینجا نه برای همین برام سوال پیش اومد

آفلاین
user-avatar
Abdollah
3 سال پیش
سلام. در مورد استفاده از Gate و Policy بستگی به راحتی خودمون داره یا استفاده از هر کدوم جایگاه خاص خودشو داره؟ ظاهراً هردوشون یه کار انجام میدن، درسته؟
آفلاین
user-avatar
حسام موسوی
3 سال پیش
راحتری خودتون ولی بیشتر از policy ها استفاده کنید در استفاده های معمولی جاهای که کدهاتون زیاده میشه بهتر مدیریت کرد
آفلاین
user-avatar
سلام . مهندس یه پیشنهاد : اینکه تو هر قسمت راهنمایی کنین که این قسمتو چجوری بررسی کنیم : مثلا اگه نیاز نیست با شما کار کنیم و فقط نگاه کنیم یا اینکه حتما تمرینش کنیم و .... الان این قسمتو فقط ببینیم کافیه یا ما هم لاراول نصب کنیم و با شما پیش بریم؟
آفلاین
user-avatar
حسام موسوی
3 سال پیش
تمام قسمت ها نیاز به تمرین داره
اگر میخوای واقعا نتیجه خوبی بگیرین لاراول رو نصب کنید و هر جلسه همراه من پیش برید و کامل تمرین کنید بدونه هیچ کم و کاستی لطفا
تا اون نتیجه ای که اول قول دادم رو در اخر بدست بیارید