コード例 #1
0
 /**
  * Remove all principals from a cronk
  * @param Cronk $cronk
  */
 private function dropGroupPrincipals(Cronk $cronk)
 {
     $principals = AppKitDoctrineUtil::createQuery()->select('p.principal_id')->from('NsmPrincipal p')->innerJoin('p.cronks c WITH c.cronk_id=?', $cronk->cronk_id)->andWhere('p.principal_type=?', array(NsmPrincipal::TYPE_ROLE))->execute();
     $pids = array();
     foreach ($principals as $principal) {
         $pids[] = $principal->principal_id;
     }
     if (count($pids) > 0) {
         AppKitDoctrineUtil::createQuery()->delete('CronkPrincipalCronk cpc')->andWhere('cpc.cpc_cronk_id=?', array($cronk->cronk_id))->andWhereIn('cpc.cpc_principal_id', $pids)->execute();
     }
     $cronk->refresh(true);
 }