Exemplo n.º 1
0
 /**
  * remove account menu
  */
 public function actionRemoveMenus($accountId, $menusStr)
 {
     $account = Account::findByPK(new \MongoId($accountId));
     $menus = split(',', $menusStr);
     $menusMap = [];
     foreach ($menus as $menu) {
         list($mod, $menuName) = split('-', $menu);
         if (empty($menusMap[$mod])) {
             $menusMap[$mod] = [];
         }
         $menusMap[$mod][] = $menuName;
     }
     $accountMenus = [];
     $oldMenus = $account->menus;
     foreach ($oldMenus as $mod => $oldMenuItems) {
         $accountMenus[$mod] = [];
         foreach ($oldMenuItems as $menuItem) {
             if (empty($menusMap[$mod]) || !in_array($menuItem['name'], $menusMap[$mod])) {
                 $accountMenus[$mod][] = $menuItem;
             }
         }
     }
     $account->menus = $accountMenus;
     if ($account->save()) {
         echo 'Remove account menus successfully with account id ' . $account->_id . "\n";
     } else {
         echo 'Fail to remove account menus with account id  ' . $account->_id . "\n";
     }
 }