Seriously Help me,, ga ngerti cara pake srbac / rights

buat masta masta yang udah pernah make extension srbac atau rights.

tolong ajarin dong dari awal banget…

sesudah nginstal saya ga ngerti pakenya,maklum masih newbie di yii.

saya udah nginstal,cuma ga ngerti terutama saat kita add task atau operation…

juga bagaimana menambah controller yang ingin diatur,misalnya saya punya BoomController,bagaimana memanage action-action BoomController

soalnya kalo dari blog demo kan udah jadi tuh,jadi ga ngerti,

step by stepnya bagaimana bila ingin membuat user x tidak dapat create di BoomController…

dsbg…

udah mepet nih tapi pengetahuanku ttg srbac masih kurang,

hehehe plis masta masta mari kita saling membantu

:lol: :lol:

BoomController:


public function accessRules()

	{

	return array(

		array('deny',

			'actions'=>array('create'),

			'users'=>array('x'),

		),

kayak gitu bisa ga

kalo kayak gitu hardcode dong namanya kang…

ga flexible.

kalo user c juga ga boleh create berarti saya harus nambahin


array('deny',

                        'actions'=>array('create'),

                        'users'=>array('c'),

                ),

maksud saya tuh melalui srbac itu…

ayo-ayo master=master help me

Model user:


static private $_editors;

public function scopes()

    {

        return array(

            'editor'=>array(

                'condition'=>'userlevel=2',

            ),

        );

    }


/**

* Return editors.

* @return array editors names

*/	

public static function getEditors() {

	if (!self::$_editors) {

		$editors = User::model()->editor()->findAll();

		$return_name = array();

		foreach ($editors as $editor)

			array_push($return_name,$editor->username);

		self::$_editors = $return_name;

	}

	return self::$_editors;

}

BoomController:


public function accessRules()

        {

        return array(

                array('deny',

                        'actions'=>array('create'),

                        'users'=>User::getEditors(),

                ),

rights, sebetulnya ada docnya, tapi agak membingungkan juga kalo gak dicoba2 :)

setelah dicoba2 sih gini.

kalau sudah selesai install, tinggal kita tambahkan saja di controllernya :




	public function filters()

	{

		return array(

			//'accessControl', // perform access control for CRUD operations

			'rights',

		);

	}

untuk penjelasan INTERFACE rightsnya, seperti ini :

MENU INTERFACE RIGHTS

Assignments

Permissions

Roles

Tasks

Operations

menurut ane sih filter yg dibuat oleh ext rights itu adalah matrix, jadi cukup mudah untuk mengikuti permintaan

user jika kita mendesign webapp yang melibatkan banyak user dan permission

btw ini just share, jadi kalo ada salah tolong di review :

Operations : adalah daftar dari controller or modul yang akan diatur, cara buatnya ada 2 cara :

  1. create langsung di menu operations

  2. generate dari menu Assignments

Task : matrix 1, penggolongan operations berdasarkan tugas, contoh :

ItemAdministrator

UserAdministrator dsb

Roles : matrix 2, penggolongan operations dan task berdasarkan Peraturan, biasanya lebih mengarah ke Departement Function

Permissions : Summary dari Operations, Task dan Roles, fungsi generatenya cukup berguna sekali untuk menentukan mana saja yang harus kita filter

Assignments : Pembagian tugas setiap user berdasarkan Roles, Task dan Operations

wew susah juga neh buat tutorialnya untuk rights, tapi kira2 begini lah dari saya, buat masta2 tolong share juga dunk. thanks

makasih bro…

nanti tak coba deh…

tpi bro klo rights guinya kurang ya untuk assign role ke user…

nanti saya coba bro…

ayo monggo share lagi semuanya…

buat nambah-nambah ilmu bro,

mari silahkan masta2

Aku g pake SRBAC sie tapi langsung pake RBAC

bikin aturan na di accessRule nya controller jadi gini


public function accessRules()

	{

		return array(

			array('allow',

				'actions'=>array('create','update','delete'),

				'roles'=>array('admin'),

			),

			array('allow', 

				'actions'=>array('index','view','admin'),

				'roles'=>array('user'),

			),			

			array('deny',  // deny all users

				'users'=>array('*'),

			),

		);

	}

Silahkan di coba. nanti sharing balik lagi…

klo penggunaan di view sepertinya makenya spt ini


<?php if(Yii::app()->user->checkAccess('commentor')): ?>

 

    <h3>Leave a Comment</h3>

            .........//your /commnet/_form here

<?php endif; ?>

[font="Trebuchet MS"] mau menambahkan and mungkin menjelaskan dengan cara yang berbeda nih gan.

Operation itu merepresentasikan atau mencerminkan Controler dan action action yang ada di dalamnya.

Operation adalah komponen terkecil dari sesuatu yang bisa kita atur hak aksesnya.

Task itu merepresentasikan gabungan atau kumpulan Operation yang ada atau pun yang telah kita buat menjadi 1 kelompok yang kita sebut dengan Task.

Role itu merepresentasikan dari gabungan atau kumpulan Task yang ada ataupun yang telah kita buat menjadi 1 kelompok yang kita sebut dengan Role.

Role itu bisa dibilang misal dalam OS windows itu mirip dengan User Group atau Account Type.

Secara default ada 2 Role yang sudah dibuatkan oleh Rights yaitu Authenticated dan Guest.

Authenticated adalah semua user yang terverifikasi sebagai user alias user yang telah berhasil melakukan proses login. sedangkan

Guest adalah semua user yang belum terverifikasi sebagai user alias user yang belum melakukan proses login.

Permision itu digunakan untuk memetakan antara Role yang telah kita buat dengan Task dan atau Operation.

Jadi Permision itu digunakan untuk nentuin bahwa misal Role A itu bisa ngelakuin Task dan atau Operasi apa saja dengan cara menekan assign sehingga ketika Task dan atau Operation di assign ke Role tersebut maka user yang nantinya memiliki Role tersebut mempunyai wewenang untuk menjalankan Task dan atau Operation yang telah kita assign.

Assignments itu digunakan untuk memetakan antara user (pengguna aplikasi yang mempunyai hak login) dengan Role.

jadi mungkin secara gampang nya untuk penggunaan right itu begitu.

untuk lebih advanced kita dapat menggabungkan dan mengkombinasikan masing masing item tersebut diatas menjadi 1 item yang baru.

misal:

[/font]

  • [font="Trebuchet MS"]membuat sebuah Operation dari gabungan antara beberapa Operation yang lain

[/font]

  • [font="Trebuchet MS"]membuat sebuah Task dari gabungan antara beberapa Operation dan atau beberapa Task yang lain.[/font]
  • [font="Trebuchet MS"]membuat sebuah Role dari gabungan antara beberapa Operation dan atau Task dan atau Role yang lain.[/font]
  • [font="Trebuchet MS"]memberikan hak ke 1 user dengan beberapa Role dan atau Task dan atau Operation.[/font]

[font="Trebuchet MS"]semoga dapat membantu agan agan membayangkan penggunaan extention rights dengan konsep RBAC

[/font]

Woohhh… meski aku g pake rights (sekarang) tapi cara jelasin konsep na benar-benar membantu.

[font="Trebuchet MS"]syukurlah klo bisa membantu agan agan sekalian.

jangan lupa rattingnya gan :lol:[/font]

:) Sebenarnya roles atau task itu penamaan saja supaya lebih mudah dimengerti oleh pengguna,

jadi kalo misalkan :

level 0 / Operations (Jika digenerate, maka secara otomatis semua action akan di filter oleh rights, artinya jika tidak ada permission untuk mengakses action ini secara otomatis akan ditolak)

level 1 / Task (Gabungan dari operations)

level 2 / Role (Gabungan dari operations / task)

User Assignments / Assignments (Pemberian hak akses user ke [level 0/1/2] tergantung kebutuhan)

summary / Permission (Rangkuman dari semuanya)

Jadi intinya rights itu sendiri bisa melakukan filter sampai dengan 2 level.

maklum kalo kata2nya agak salah, bingung juga jelasinnya … tapi yg gw coba begini sih :)

dan sudah gw pake. ane gabungin antara yii-users, rights, session, auditTrail

mantappppp bener :) ;D

Mantap sekali penjelasan dari masta-masta disini…

setelah dicoba akhirnya ane paham gan…

sekarang ane udah nangkep…

tapi untuk menjelaskannya ane juga bingung…

hehehhehe

monggo disharing lagi ,lanjut

numpang lewat gan :) :) :) ;D ;D

keren gan… makin tambah jelas nih penggunaan dan konsep dri extention rights…