Example #1
0
 /**
  * Get rule error
  *
  * @param $rule
  * @return string
  */
 protected function getRuleError($rule)
 {
     /**
      * @var UserRules $userRule
      */
     $userRule = UserRules::findFirst(['conditions' => 'mca = ?0', 'bind' => [$rule]]);
     if ($userRule) {
         return __($userRule->action_name);
     } else {
         return '';
     }
 }
Example #2
0
 /**
  * Delete old rules
  *
  * @param string $module
  * @param array $rules
  */
 private function deleteOldRules($module, $rules)
 {
     $array_rules = [];
     foreach ($rules as $rule) {
         $array_rules[] = "'" . $module . "|" . $rule['controller'] . "|" . $rule['action'] . "'";
     }
     $str = implode(',', $array_rules);
     $phql = "SELECT " . "rule_id,mca FROM ZCMS\\Core\\Models\\UserRules " . "WHERE module = ?0 AND mca not in (" . $str . ")";
     /**
      * @var mixed $old_rules
      */
     $old_rules = $this->modelsManager->executeQuery($phql, [0 => $module]);
     $old_rules_array = $old_rules->toArray();
     if (!empty($old_rules_array)) {
         $ids = implode(',', array_column($old_rules_array, 'rule_id'));
         $delete = "DELETE FROM user_role_mapping WHERE rule_id IN (" . $ids . ")";
         $this->db->execute($delete);
     }
     foreach ($old_rules as $or) {
         $userRule = UserRules::findFirst($or->rule_id);
         if ($userRule) {
             $userRule->delete();
         }
     }
 }