/**
  *
  * @param PermissionUpdated $info
  */
 public function handle(PermissionUpdated $info)
 {
     $type = $info->getType();
     $id = $info->getId();
     if (strpos($type, 'group') !== false) {
         $groupMembers = Sentinel::getUserGroupProvider()->getMembersGroups($id);
         if (!empty($groupMembers)) {
             if (strpos($type, 'management') !== false) {
                 $provider = Sentinel::getPermissionManagementProvider();
             } else {
                 $provider = Sentinel::getPermissionProvider();
             }
             foreach ($groupMembers as $userID => $userGroups) {
                 $provider->updateUserGroupPermissions($userID, $userGroups);
             }
         }
     }
 }
 public function handle(PermissionUpdated $info)
 {
     $type = $info->getType();
     $id = $info->getId();
     if (strpos($type, 'management') !== false) {
         $entity = '%s_permission_management_%d';
     } else {
         $entity = '%s_permissions_%d';
     }
     if ($type == "group" || $type == "group_management") {
         $groupMembers = Sentinel::getUserGroupProvider()->getMembers($id)->get(['users.id']);
         if ($groupMembers->count() > 0) {
             foreach ($groupMembers as $member) {
                 Cache::forget(sprintf($entity, 'user', $member->id));
                 Cache::forget(sprintf($entity, 'group', $member->id));
                 Cache::forget('backend_menu_' . $member->id);
             }
         }
     } else {
         Cache::forget(sprintf($entity, 'user', $id));
         Cache::forget(sprintf($entity, 'group', $id));
         Cache::forget('backend_menu_' . $id);
     }
 }