Exemple #1
0
 public static function permit($role, $action, $subject, $subject_id, $control)
 {
     $result = false;
     $params = array(':role' => $role, ':control' => $control, ':action' => $action, ':subject' => $subject, ':subject_id' => $subject_id);
     $query = new SelectQuery('Permission');
     $query->filter('`role` = :role')->filter('`control` = :control')->filter('`action` = :action')->filter('`subject` = :subject')->filter('`subject_id` = :subject_id')->filter('system = 0');
     $id = $query->fetchColumn($params);
     if ($id) {
         $query = new UpdateQuery('Permission');
         $query->data(array('control' => ':control'))->filter('`id` = :id');
         return $query->execute(array(':id' => $id, ':control' => $control));
     } else {
         $data = array('role', 'control', 'action', 'subject', 'subject_id');
         $data = array_combine($data, array_values($params));
         $query = new InsertQuery('Permission');
         $query->data($data);
         return $query->execute();
     }
 }