Yii Framework Forum: چک کردن سطح دسترسی با اجرای تنها یک کوئری - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

چک کردن سطح دسترسی با اجرای تنها یک کوئری

#1 User is offline   Nabi 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 215
  • Joined: 22-February 12
  • Location:Ahwaz

Posted 06 April 2014 - 08:21 AM


سلام،

وقتی از کلاس CDbAuthManager برای چک کردن سطح دسترسی استفاده میکنید، کدی شبیه این استفاده میکنید:

Yii::app()->user->checkAccess('post');


که در پس کار این کوئری اجرا میشود:

SELECT * FROM `auth_item` WHERE name='post'


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

برای حل موضوع من یک اکستنشن نوشتم که این مشکل رو حل میکنه و شما میتونید همزمان چندین سطح دسترسی رو چک کنید به طوری که تنها یک کوئری گرفته بشه.

ویژگی دیگه ای که این اکستنشن داره اینه که علاوه بر چک کردن سطح دسترسی کاربر جاری لاگین شده، میتونید سطح دسترسی کاربر دیگری که لاگین نیست را نیز چک کنید.

تنها درنظر داشته باشید که فعلاً از bizRule پشتیبانی نمیکنه.

این اکستنشن رو از اینجا میتونید دریافت کنید:
http://www.yiiframew...auth-component

باتشکر
نبی





وقتی پیغام میذارید، بی زحمت متنتون رو انتخاب کنید و این دو تا کار ناقابل رو هم انجام بدید:
1. از اون بالا RTL رو انتخاب کنید.
2. فونت رو هم Tahoma بگذارید.
که چشمون در نیاد.
دمت گرم!

www.IranPHP.ir
2

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users