[icinga-checkins] icinga.org: icinga-web/feature/datapermissions-wip: Added MultiLikeExtenderModel for DQLViews

git at icinga.org git at icinga.org
Mon Feb 18 16:28:13 CET 2013


Module: icinga-web
Branch: feature/datapermissions-wip
Commit: ed5370a80081ed8ab5d87b2f5bac628a8f14ad87
URL:    https://git.icinga.org/?p=icinga-web.git;a=commit;h=ed5370a80081ed8ab5d87b2f5bac628a8f14ad87

Author: Jannis Mosshammer <jannis.mosshammer at netways.de>
Date:   Fri Feb 15 14:33:34 2013 +0100

Added MultiLikeExtenderModel for DQLViews

Signed-off-by: Markus Frosch <markus at lazyfrosch.de>

---

 .../Extender/MultiLikeExtenderModel.class.php      |   45 ++++++++++++++++++++
 1 files changed, 45 insertions(+), 0 deletions(-)

diff --git a/app/modules/Api/models/Views/Extender/MultiLikeExtenderModel.class.php b/app/modules/Api/models/Views/Extender/MultiLikeExtenderModel.class.php
new file mode 100644
index 0000000..2ec6291
--- /dev/null
+++ b/app/modules/Api/models/Views/Extender/MultiLikeExtenderModel.class.php
@@ -0,0 +1,45 @@
+<?php
+// {{{ICINGA_LICENSE_CODE}}}
+// -----------------------------------------------------------------------------
+// This file is part of icinga-web.
+// 
+// Copyright (c) 2009-2012 Icinga Developer Team.
+// All rights reserved.
+// 
+// icinga-web is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+// 
+// icinga-web is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with icinga-web.  If not, see <http://www.gnu.org/licenses/>.
+// -----------------------------------------------------------------------------
+// {{{ICINGA_LICENSE_CODE}}}
+
+
+class Api_Views_Extender_MultiLikeExtenderModel extends IcingaBaseModel 
+    implements DQLViewExtender {
+    
+    
+    public function extend(IcingaDoctrine_Query $query,array $params) 
+    {
+        $target = $params["target"]; 
+        $column = $params["column"]; 
+        $user = $this->getContext()->getUser()->getNsmUser();
+        $targetVals = $user->getTargetValues($target,true)->toArray();
+        if(empty($targetVals))
+            return false;
+        $dqlParts = array();
+        $dqlValues = array();
+        foreach($targetVals as $currentTarget) {
+            $dqlParts[] = "$column LIKE '".$currentTarget["tv_val"]."'";
+        }
+        $dql = "(".implode(" OR ", $dqlParts).")";
+        $query->andWhere($dql);
+    }
+} 





More information about the icinga-checkins mailing list