Yii Framework Forum: [SOLVED]Membuat menu berbeda untuk tipe user berbeda dengan rights - Yii Framework Forum

Jump to content

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

[SOLVED]Membuat menu berbeda untuk tipe user berbeda dengan rights Rate Topic: -----

#1 User is offline   bukan saya - sungguh 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 4
  • Joined: 29-April 11

Posted 01 May 2011 - 03:51 AM

Master-master sekalian, bukan saya mau tanya....

Aplikasi yang saya buat memiliki 5 macam tipe user. Untuk membantu mengelola SRBAC saya menggunakan extension rights. Saya melakukan instalasi dan membuat beberapa roles.

Pertanyaanya : bagaimana cara membuat beberapa macam menu yang berbeda untuk tipe user yang berbeda? sepertinya kuncinya berada pada apakah ada fungsi yang harus dipanggil untuk mengetahui yang sedang login ini rolesnya apa...

Thanx before
0

#2 User is offline   petra 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 230
  • Joined: 20-June 10

Posted 02 May 2011 - 12:22 AM

di WebUsernya ditambahin method hasRole aja yang nanti ngecek database si RBAC...

http://www.yiiframew...nding-cwebuser/
http://www.yiiframew.../CDbAuthManager

jadinya khan tinggal

if (Yii::app()->user->hasRole('admin')) {
  //tampilin menu admin
} else {
  //tampilin menu user biasa
}

0

#3 User is offline   ressaince 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 163
  • Joined: 10-January 11
  • Location:Jakarta

Posted 02 May 2011 - 02:01 AM

oh kalo mas petra itu berdasarkan rolenya yak..
kalo kasus saya ada 5 macam role,cuma ada user yang memiliki 1 role+beberapa aksi tambahan/task (perlu diingat bahwa rights sangat dinamis tidak hanya role saja yang bisa diberikan kepada user,tetapi dapat diberikan role/task/operation)

sehingga kalo saya berdasarkan aksinya.. contoh:
if(Yii::app()->user->checkAccess('Users.Admin'))
{
					
   $menu[]='<li><a href="'.Yii::app()->request->baseUrl.'/users/admin">Manage Users</a></li>';
					
}

rights akan memeriksa apakah si user tersebut berhak melakukan aksi Users.Admin
kalo ya simpen kearray seperti diatas,kemudian munculkan deh si array

lebih enak lagi kalo controller kita aksinya namanya sama semua, sehingga bisa lebih dinamis
contoh:
kita punya 3 Controller: Users,Customer,Barang

$pret=array('Users,'Customer','Barang');
foreach($pret as $prot)
{
if(Yii::app()->user->checkAccess($prot.'.Admin') //munculkan menu
if(Yii::app()->user->checkAccess($prot.'.Index') //munculkan menu
if(Yii::app()->user->checkAccess($prot.'.Create') //munculkan menu
}


sekian dulu,semoga ngerti
take it or leave it
0

#4 User is offline   petra 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 230
  • Joined: 20-June 10

Posted 02 May 2011 - 03:04 AM

nice one!

kadang2 emang kalo nampilin menunya ada tombol2 yg spesifik task lebih baik emang pake checkAccess aja :P
0

#5 User is offline   ressaince 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 163
  • Joined: 10-January 11
  • Location:Jakarta

Posted 02 May 2011 - 07:35 PM

yup
apalagi checkAccess udah ada dari sononya,kita ga perlu bikin lagi method tersebut
take it or leave it
0

#6 User is offline   ibiz4 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 151
  • Joined: 26-November 10
  • Location:Indonesia

Posted 04 May 2011 - 02:01 AM

klonengan gan :P
WYSIWYG
(What Yii Serve is What You Get)
0

#7 User is offline   bukan saya - sungguh 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 4
  • Joined: 29-April 11

Posted 10 May 2011 - 05:46 AM

Maaf lambat jawabnya. Kemarin-kemarin masih sibuk ngerjakan tugas UAS. Sebagai rasa penyesalan (dan terima kasih), dalam waktu dekat saya menyumbang tutorial buat install dan utak-atik menu pakai rights :D

Kembali ke masalah utama. Setelah diperhatikan dan dipikir berlama-lama ternyata saya cuma perlu dua roles untuk menu utama aplikasi saya, dua roles tersebut adalah tu-admin, dan selain-itu (roles lainnya digunakan pada sub-menu).

Jadi inilah kode di layouts/main.php

<?php
        $items = array();
       
        //semua roles bisa melakukan ini.
        $items[] = array('label'=>'Home', 'url'=>array('/site/index'));
        $items[]= array('label'=>'User', 'url'=>array('/user/'));
        $items[]=array('label'=>'Profile', 'url'=>array('/user/myprofile'));
        $items[]=array('label'=>'Update Profile', 'url'=>array('/user/updatemyprofile'));
        $items[]=array('label'=>'About', 'url'=>array('/site/page'));
        $items[]=array('label'=>'Ruangan', 'url'=>array('/ruangan/'));
        $items[]=array('label'=>'Reservasi', 'url'=>array('/reservasi/'));
        $items[]=array('label'=>'Appointment', 'url'=>array('/appointment/indexNA'));

         if(Yii::app()->user->checkAccess('Approval.Indextu')) //berarti TU Bagian admin
         {
                $items[]=array('label'=>'Approval TU', 'url'=>array('/approval/indextu'));
                $items[]= array('label'=>'Appointment Admin', 'url'=>array('/appointment/indexA'));
                $items[]= array('label'=>'Invitation Admin', 'url'=>array('/peserta/admin'));
         }
         
        //semua roles bisa melakukan ini
        
	$items[]=array('label'=>'Login', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest);
	$items[]=array('label'=>'Logout ('.Yii::app()->user->name.')', 'url'=>array('/site/logout'), 'visible'=>!Yii::app()->user->isGuest);
        
        
        ?>
	<div id="mainmenu">
		<?php $this->widget('zii.widgets.CMenu',array(
			'items'=>$items
		)); ?>
	</div><!-- mainmenu -->
	<?php if(isset($this->breadcrumbs)):?>
		<?php $this->widget('zii.widgets.CBreadcrumbs', array(
			'links'=>$this->breadcrumbs,
		)); ?><!-- breadcrumbs -->
	<?php endif?>


Dan tidak lupa saya ucapkan terima kasih super atas supportnya........ :)
0

#8 User is offline   ressaince 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 163
  • Joined: 10-January 11
  • Location:Jakarta

Posted 10 May 2011 - 07:46 AM

yupp
nice you've solved this,hahahaha
kalo gitu topik ini di rename jadi solved ya
take it or leave it
0

#9 User is offline   ahmadroni 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 250
  • Joined: 14-June 09
  • Location:Yogyakarta-Indonesia

Posted 06 June 2011 - 10:40 PM

Oh ya kalo itu kan Menunya di tulis di Kode, tapi bagai mana kalo menunya itu bisa Flexibel tanpa harus mengubah Kode, Apa perlu kita buat tabel menu untuk menampung semua link, dan sekaligus hak akses dari setiap user..
mohon masukan nya gan..
Hospital Cost Management System and
Hospital Management Information System
0

#10 User is offline   loper_kesasar 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 104
  • Joined: 31-March 11

Posted 30 November 2011 - 08:31 AM

gan cara make rights gimana ya?ane dah berhasil install nya tapi pas ane tambahin
public function filters() {
		return array(
		    'rights',
		    );

		}

kok g bisa ya?Filter "rights" is invalid. Controller "LksaDataController" does not have the filter method "filterrights".
0

#11 User is offline   ahmadroni 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 250
  • Joined: 14-June 09
  • Location:Yogyakarta-Indonesia

Posted 09 December 2011 - 08:25 AM

sudah ketemu belum cara menggunakan RIGHT ???
Hospital Cost Management System and
Hospital Management Information System
0

#12 User is offline   junxiong 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 543
  • Joined: 21-June 10

Posted 05 January 2012 - 08:49 PM

View Postloper_kesasar, on 30 November 2011 - 08:31 AM, said:

gan cara make rights gimana ya?ane dah berhasil install nya tapi pas ane tambahin
public function filters() {
		return array(
		    'rights',
		    );

		}

kok g bisa ya?Filter "rights" is invalid. Controller "LksaDataController" does not have the filter method "filterrights".


Gan, sudah fix masalahnya? Biasanya masalah ini disebabkan controller agan bukan inheritance dari RController. Cara paling gampang buka /protected/components/Controller.php ganti code nya menjadi:
class Controller extends RController

“The most likely way for the world to be destroyed, most experts argue, is by accident. That’s where we come in; we’re computer professionals. We cause accidents.” - Nathaniel Borenstein

Yii Playground : Collaborative demo apps. You can join to improve it too!
My Team's Blog: In Indonesian.
0

#13 User is offline   bornfromash 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 4
  • Joined: 12-October 17

Posted 11 December 2017 - 11:33 AM

mas saya mau nanya untuk bikin user barunya itu bagaimana caranya misal saya mau buat role baru dengan nama Bos dan karyawan, trimakasih
0

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