پیاده سازی سطوح دسترسی داینامیک در انگولار

3 سال پیش توسط محمد رعنایی نظام دوست مطرح شد
آفلاین
user-avatar
محمد رعنایی نظام دوست ( 100 تجربه )
3 سال پیش
تخصص : توسعه دهنده فرانت اند

لینک کوتاه اشتراک گذاری

0

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

من یک پنل مدیریت دارم که ادمین اصلی میتونه تو این پنل برای هر کاربر سطح دسترسی متفاوتی تعریف کنه
تا اون جا که من میدونم کنترل سطوح دسترسی در انگولار با استفاده از Gaurd ها انجام میشه و روش خاص خودش رو داره ...

اما این روش استاتیک هست و ما باید به صورت دستی چند رول مختلف رو مشخص کنیم و بر اساس اون بریم جلو ...

حالا اگه سطوح دسترسی به شکلی که گفتم باشه چطور ؟ ما فقط ۲ تا سطح دسترسی رو از قبل میدونیم : کاربران عادی و ادمین کل
حالا بقیه سطوح و ادمین های سطح ۱ ، سطح ۲ و ... رو چه کنیم ؟

چیزی که خودم به ذهنم رسید اینه که هنگامی که منو داره ساخته میشه ، آیتم های موجود در اون رو با توجه به اطلاعاتی که از وب سرویس گرفتیم ایجاد کنیم
مثلا تو وب سرویس بگیم

user = {
    username : 'mohammad',
    avatar : 'url ...',
    roles : [ 'add new user', 'get sale report', 'edit posts' , '...' ]
  };

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

ممنون میشم راهنماییم کنید

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

یک چیزی که اشتباه متوجه شدین اینکه role های شما برای مثال باید شامل نویسنده وبسایت ، ناظر وبسایت ، مدیر کل و .... بشه یعنی کاملا پویا در پنل مدیریت هم میتونید یک بخش برای ایجاد role های جدید اماده کنید اما اون چیزی که باید استاتیک باشه که شما به اشتباه داخل role تعریف کردین permission هست برای مثال اجازه تغییر یک پست ، اجازه ویرایش یک پست و ...
و اینکه بله اطلاعات رو باید از api بگیرید ولی برای مثال در برنامه خودتون permission ها رو باید شروطش رو قرار بدید و هر زمان اطلاعات کاربر اومد با اون چک بشه که اوکی هست یا نه البته این تنها client هست
حتما پیشنهاد میکنم سمت سرور و api هم همین اجازه دسترسی قرار داده بشه

آفلاین
user-avatar
حسام موسوی ( 461235 تجربه )
3 سال پیش
تخصص : طراح و برنامه نویس

لینک کوتاه اشتراک گذاری

1

یک چیزی که اشتباه متوجه شدین اینکه role های شما برای مثال باید شامل نویسنده وبسایت ، ناظر وبسایت ، مدیر کل و .... بشه یعنی کاملا پویا در پنل مدیریت هم میتونید یک بخش برای ایجاد role های جدید اماده کنید اما اون چیزی که باید استاتیک باشه که شما به اشتباه داخل role تعریف کردین permission هست برای مثال اجازه تغییر یک پست ، اجازه ویرایش یک پست و ...
و اینکه بله اطلاعات رو باید از api بگیرید ولی برای مثال در برنامه خودتون permission ها رو باید شروطش رو قرار بدید و هر زمان اطلاعات کاربر اومد با اون چک بشه که اوکی هست یا نه البته این تنها client هست
حتما پیشنهاد میکنم سمت سرور و api هم همین اجازه دسترسی قرار داده بشه

آفلاین
user-avatar
محمد رعنایی نظام دوست ( 100 تجربه )
3 سال پیش
تخصص : توسعه دهنده فرانت اند

لینک کوتاه اشتراک گذاری

0

آها یعنی به همین روشی که گفتم به جای role ها ، permission ها رو از وب سرویس دریافت کنم و با توجه به اون آیتم ها رو hide و show کنم ؟ درسته ؟
حالا آیا ابزار خاصی هم وجود داره برای اینکار ؟ یا مثلا اصتلاح خاصی که در موردش سرچ کنم
یکی از دوستان ngx-permissions رو معرفی کردن ...

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

آفلاین
user-avatar
حسام موسوی ( 461235 تجربه )
3 سال پیش
تخصص : طراح و برنامه نویس

لینک کوتاه اشتراک گذاری

1

بله در مورد acl در انگولار تحقیق کنید پکیج های کاربردی و زیادی برای این موضوع وجود داره که راحت میتونید پیاده سازی کنید .

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.