You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							26 lines
						
					
					
						
							750 B
						
					
					
				
			
		
		
	
	
							26 lines
						
					
					
						
							750 B
						
					
					
				| <?php | |
|  | |
| namespace backend\widgets\grid; | |
|  | |
| use core\access\Rbac; | |
| use Yii; | |
| use yii\grid\DataColumn; | |
| use yii\helpers\Html; | |
| use yii\rbac\Item; | |
|  | |
| class RoleColumn extends DataColumn | |
| { | |
|     protected function renderDataCellContent($model, $key, $index): string | |
|     { | |
|         $roles = Yii::$app->authManager->getRolesByUser($model->id); | |
|         return $roles === [] ? $this->grid->emptyCell : implode(', ', array_map(function (Item $role) { | |
|             return $this->getRoleLabel($role); | |
|         }, $roles)); | |
|     } | |
|  | |
|     private function getRoleLabel(Item $role): string | |
|     { | |
|         $class = $role->name == Rbac::ROLE_USER ? 'primary' : 'danger'; | |
|         return Html::tag('span', Html::encode($role->description), ['class' => 'label label-' . $class]); | |
|     } | |
| } |