Commit Graph

3219 Commits

Author SHA1 Message Date
Eric Lippmann 46ab8d847d Forms: Wrap the label and the help icon in a div
refs #5543
2015-09-19 21:58:02 +02:00
Eric Lippmann a92c0de52f CSS: Disable all form styles for the moment
refs #5543
2015-09-19 21:57:29 +02:00
Jo Rhett f3df1f228d Fix for support issue 9950, do lookups properly on posixGroup group classes 2015-09-18 13:37:04 -07:00
Alexander A. Klimov 17e8f01d24 Use the DN to fetch group memberships from LDAP
fixes #9901
2015-09-18 15:34:12 +02:00
Eric Lippmann cf8548a29d CSS: Add Icinga theme (WIP)
refs #5543
2015-09-18 15:25:14 +02:00
Johannes Meyer d4a9198310 Navigation: Only fail if there's really no chance to create the requested hierarchy
refs #5600
2015-09-17 14:42:02 +02:00
Johannes Meyer b6fe6ffd6b Navigation: Relax type check in method fromConfig()
refs #5600
2015-09-17 13:41:28 +02:00
Johannes Meyer bb4f4e9095 User: Properly load menu items
refs #5600
2015-09-17 13:40:58 +02:00
Johannes Meyer 0ec3610349 Web: Properly load shared menu items
refs #5600
2015-09-17 13:40:40 +02:00
Eric Lippmann eff9249863 lib: Don't provide LDAP server-side sort request if the query has no order
refs #10147
2015-09-17 13:01:58 +02:00
Eric Lippmann 79c9a8af9b lib: Fix Number::isValid(), again :) 2015-09-17 12:52:09 +02:00
Eric Lippmann ccfbc13a38 Merge branch 'feature/more-db-reource-types-9683'
resolves #9683
2015-09-17 12:48:27 +02:00
Eric Lippmann f46504554e lib: Check for mssql extension too in Platform::hasMssqlSupport()
refs #9683
2015-09-17 11:48:25 +02:00
Johannes Meyer 83bde3aa81 Form: Rename property $parent to $_parent
Zend.. I love you..
2015-09-17 11:23:47 +02:00
Johannes Meyer 4f5a5c83bc Navigation: Add method hasRenderableItems()
refs #5600
2015-09-17 11:01:06 +02:00
Johannes Meyer bf4e492fa1 Action: Accept and apply option "filter"
refs #5600
2015-09-17 11:00:40 +02:00
Johannes Meyer b1ee12f721 NavigationItem: Allow to dynamically decide whether to render an item
refs #5600
2015-09-17 09:11:17 +02:00
Johannes Meyer 84f733b177 DashboardPane: Rename param $order to $ordered in method getDashlets
refs #5600
2015-09-17 08:25:17 +02:00
Johannes Meyer 54d08f99e8 DashboardPane: Order dashlets alphabetically
refs #5600
2015-09-16 15:31:41 +02:00
Johannes Meyer 8c17364780 Late translate a module's menu section labels
refs #5600
2015-09-16 14:36:35 +02:00
Johannes Meyer 8b7a1ce28f Late translate a module's dashboard-pane/dashlet labels
refs #5600
2015-09-16 14:29:33 +02:00
Johannes Meyer bbadb0b75c Add support for no-op translations
refs #5600
2015-09-16 14:16:40 +02:00
Johannes Meyer 0ca6e04a5a Module: Allow to pass a label for a custom navigation item type
refs #5600
2015-09-16 13:51:35 +02:00
Johannes Meyer d0eb61dc2e Form: Add property $parent
refs #5600
2015-09-15 16:09:33 +02:00
Johannes Meyer ccae7c4d0d Module: Allow to define a dashboard pane's properties
Since dashboards are now alphabetically sorted as well, we need some way
to affect this as the old behaviour was to sort them as they were registered

refs #5600
2015-09-15 13:54:53 +02:00
Johannes Meyer 1d6ad6df21 Merge branch 'master' into feature/custom-menu-items-5600
Conflicts:
	modules/monitoring/configuration.php
2015-09-15 13:31:30 +02:00
Eric Lippmann a4fec6f42e lib: Fix LdapConnection::encodeSortRules()
- Fix reverseOrder encoding
- Support PHP < 5.4
2015-09-08 14:29:31 +02:00
Eric Lippmann e8c21868ff lib: Fix Number::isValid()
- Calls $this->translate()
- Always performs is_numeric check, even if the element is not required
2015-09-07 16:57:09 +02:00
Eric Lippmann d52bb7d92a lib: Add Platform::hasLdapSupport() and Platform::hasDatabaseSupport()
refs #9683
2015-09-07 16:43:41 +02:00
Eric Lippmann 358f1750fb lib: Add Platform::hasOciSupport()
refs #9683
2015-09-07 16:34:10 +02:00
Eric Lippmann bba1838c7d lib: Add Platform::hasOracleSupport()
refs #9683
2015-09-07 16:34:10 +02:00
Eric Lippmann 9f3ef5cc8d lib: Add Platform::hasMssqlSupport()
refs #9683
2015-09-07 16:34:04 +02:00
Eric Lippmann 771efae1a2 lib/db: Allow to configure mssql resources
refs #9683
2015-09-07 16:20:37 +02:00
Eric Lippmann 4763b6b20a lib/db: Allow to configure persistent connections
refs #9683
2015-09-07 16:15:04 +02:00
Eric Lippmann 44c19fc5e6 lib/db: Allow to create oracle (pdo_oci) connections
refs #9683
2015-09-07 16:14:11 +02:00
Eric Lippmann a42c8d1f24 lib/db: Allow to create oci8 connections
refs #9683
2015-09-07 16:11:16 +02:00
Eric Lippmann e34c50bc91 lib: Fix PHPDoc of DbConnection::$dbAdapter 2015-09-07 14:43:13 +02:00
Johannes Meyer 6a00eaf34d User: Add method loadNavigationConfig()
refs #5600
2015-09-07 14:01:28 +02:00
Eric Lippmann b897813e71 lib: Add Form::setRequest() 2015-09-07 13:55:52 +02:00
Johannes Meyer b1e3519353 Add class NavigationController (WIP)
refs #5600
2015-09-07 13:55:19 +02:00
Eric Lippmann 1fb613e811 api/forms: Fix array access of a notification
refs #9606
2015-09-07 13:49:53 +02:00
Eric Lippmann d3fe1e1973 api/response: Allow setting null as success data
refs #9606
2015-09-07 13:45:13 +02:00
Eric Lippmann b20eb681c0 api/forms: Use the first success notification as success message
refs #9606
2015-09-07 13:44:46 +02:00
Eric Lippmann f467d085b0 api: Use JsonResponse in form
refs #9606
2015-09-07 13:36:12 +02:00
Johannes Meyer 21180e2fd4 NavigationItem: Fix method conflictsWith()
...

refs #5600
2015-09-07 13:26:44 +02:00
Johannes Meyer 6b13f2a987 NavigationRenderer: Do not render an empty header
refs #5600
2015-09-07 13:25:25 +02:00
Eric Lippmann 25abc16e15 lib: Replace Repsonse::sendJson() w/ Response::json()
refs #9606
2015-09-07 13:24:21 +02:00
Eric Lippmann a9cb8bfb2c lib: Add JsonResponse class
refs #9606
2015-09-07 13:22:58 +02:00
Johannes Meyer f9441c91d5 Navigation: Load shared navigation items
refs #5600
2015-09-07 13:22:36 +02:00
Johannes Meyer 27f3a8f152 Web: Add method getSharedNavigation()
refs #5600
2015-09-07 13:22:02 +02:00
Eric Lippmann b6dc546fe5 lib: Fix PHPDoc of Filter::fromQueryString() 2015-09-07 13:21:48 +02:00
Johannes Meyer ee43fdad0a DashboardPane: Consider dashlets when merging
refs #5600
2015-09-07 13:21:31 +02:00
Johannes Meyer bf2cb9ab7e NavigationItem: Provide a more sophisticated conflict detection
refs #5600
2015-09-07 13:20:49 +02:00
Johannes Meyer 0feaec7af1 NavigationItem: Return a instance of Url in method getUrl(), really
refs #5600
2015-09-07 13:20:17 +02:00
Johannes Meyer 451a0c91f2 NavigationItem: Add missing return statement in method merge()
refs #5600
2015-09-07 13:19:36 +02:00
Johannes Meyer f958a1c323 Navigation: Load a user's navigation items
refs #5600
2015-09-07 12:20:14 +02:00
Johannes Meyer a012595e3d User: Add method getNavigation()
refs #5600
2015-09-07 12:19:54 +02:00
Johannes Meyer 411c6e0546 Navigation: Fix that a module's item class is not found
refs #5600
2015-09-07 12:01:05 +02:00
Eric Lippmann 0f8c28d749 Merge branch 'master' into feature/api-9606 2015-09-07 11:33:44 +02:00
Johannes Meyer 274a0c8a09 Store a user's preferences in a dedicated directory rather than in a single file
refs #5600
2015-09-07 11:20:36 +02:00
Johannes Meyer 1be6dc0553 Module.php: Allow modules to provide configurable navigation items
refs #5600
2015-09-07 11:06:11 +02:00
Johannes Meyer f9b68b683b NavigationItem: Consider unknown properties as element attributes
refs #5600
2015-09-07 09:49:05 +02:00
Johannes Meyer ca72bd5455 NavigationRendererInterface: Use "div" as default outer element tag
"nav" is less often necessary.

refs #5600
2015-09-07 09:48:32 +02:00
Johannes Meyer e63e15e471 Add class DashboardPane
refs #5600
2015-09-07 09:06:40 +02:00
Johannes Meyer b5711f4031 Dashboard: Load panes by utilizing the new Navigation
This is only a quick fix to avoid adjusting the complete dashboard
implementation.

refs #5600
2015-09-07 09:05:50 +02:00
Johannes Meyer a3539b0817 Navigation: Fix method getActiveItem() failing badly for empty navigations
refs #5600
2015-09-07 08:37:06 +02:00
Johannes Meyer 6dd49761ff Navigation: Add method getActiveItem()
refs #5600
2015-09-04 16:21:09 +02:00
Johannes Meyer 6967fffb1f Navigation: Add support dashboard-panes and check module permissions
refs #5600
2015-09-04 15:51:51 +02:00
Johannes Meyer 95a61e89a9 Module: Fix how dashlets are loaded
refs #5600
2015-09-04 15:51:33 +02:00
Matthias Jentsch 29a2ee1a02 Merge branch 'feature/provide-counter-view-10033'
resolves #10033
2015-09-04 15:27:35 +02:00
Johannes Meyer 70a48643c1 Add class DashboardContainer
refs #5600
2015-09-04 15:25:19 +02:00
Johannes Meyer 5c2619dcb5 Add class NavigationItemContainer
refs #5600
2015-09-04 15:04:29 +02:00
Eric Lippmann 39c68dd5ce LDAP Auth: Fix Fatal error: Call to a member function hasOid() on a non-object 2015-09-04 15:01:05 +02:00
Johannes Meyer 2af06e9415 NavigationItem: Re-introduce a default priority of 100
refs #5600
2015-09-04 14:20:21 +02:00
Johannes Meyer b2a0f1b9c2 Navigation: Peform a case-insensitive search when merging items
refs #5600
2015-09-04 14:17:16 +02:00
Johannes Meyer ab23b56973 Web: Load module menus
refs #5600
2015-09-04 13:55:49 +02:00
Johannes Meyer 63f8f34c15 Navigation: Add method load()
Supports currently only module menus.

refs #5600
2015-09-04 13:55:31 +02:00
Johannes Meyer 27a6b5bb75 Module: Utilize MenuItemContainer instead of Menu
refs #5600
2015-09-04 13:54:53 +02:00
Johannes Meyer 8643fec309 Add class MenuItemContainer
resf #5600
2015-09-04 13:54:23 +02:00
Johannes Meyer 881880f18f SummaryNavigationItemRenderer: Fix method getTitle()
refs #5600
2015-09-04 13:48:29 +02:00
Johannes Meyer 8e24ec978d BadgeNavigationItemRenderer: Use view() instead of getView()
refs #5600
2015-09-04 13:47:57 +02:00
Johannes Meyer 044fe031da NavigationItemRenderer: Add method init()
refs #5600
2015-09-04 13:47:38 +02:00
Johannes Meyer 1a42c04c8e NavigationItem: Fix locating a module's custom navigation renderer
refs #5600
2015-09-04 13:47:17 +02:00
Eric Lippmann b28f1c4038 Merge branch 'bugfix/monitoring-ack-comments-display-9674'
fixes #9674
2015-09-04 13:04:39 +02:00
Matthias Jentsch ca33e71f2d Deduplicate and clean up service summary component
Remove redundant component view script and streamline subFilter handling in all views that render it. Remove
heading from component to allow embedding in different types of views.

refs #10033
2015-09-04 13:02:57 +02:00
Eric Lippmann 297a4333cd lib/ldap: Use the indefinite form of the length octets for encoded sort rules where appropriate
I guess we may never need this, but hey :)

refs #9364
2015-09-04 11:58:11 +02:00
Johannes Meyer 294f9022f2 Use the new navigation to render the menu
refs #5600
2015-09-04 10:53:01 +02:00
Johannes Meyer 5ff3db8a3c Url: Explicitly handle '#'
Feels like a quick&dirty solution. Feel free to improve it.

refs #5600
2015-09-04 10:34:39 +02:00
Johannes Meyer 07588595f2 NavigationItem: Automatically determine whether it's active or not
refs #5600
2015-09-04 10:10:33 +02:00
Eric Lippmann 9b22b24561 lib/ldap: Use ldap_count_entries for counting the result set 2015-09-04 09:57:04 +02:00
Johannes Meyer baefc89f85 NavigationRenderer: Provide a id for outer item markup (<li>)
refs #5600
2015-09-04 09:41:39 +02:00
Johannes Meyer 2855778dc7 Revert "NavigationItemRenderer: Provide a id if none is set"
This reverts commit c60839d798.
2015-09-04 09:38:03 +02:00
Johannes Meyer 975cc92f6b NavigationItem: Provide "#" as default url for items with children
refs #5600
2015-09-04 09:31:23 +02:00
Johannes Meyer 4e948b46bf NavigationRenderer: Add id "navigation" to the navigation's heading
refs #5600
2015-09-04 09:26:28 +02:00
Johannes Meyer c60839d798 NavigationItemRenderer: Provide a id if none is set
refs #5600
2015-09-04 09:25:58 +02:00
Johannes Meyer a8d5a78aa2 NavigationItem: Fix method getUniqueName()
refs #5600
2015-09-04 09:25:25 +02:00
Johannes Meyer a6b2c23684 Update navigation rendering code to fit the previous adjustments
refs #5600
2015-09-04 09:08:20 +02:00
Eric Lippmann fa25ce7f2f lib/ldap: Set server side sorting after calling ldap_control_paged_result()
ldap_control_paged_result() seems to override already set server controls.

refs #9364
2015-09-03 17:50:24 +02:00
Eric Lippmann 9e11d539fd lib/ldap: Enable server side sorting if supported by the server
refs #9364
2015-09-03 17:48:53 +02:00
Eric Lippmann 00e5bbe91c lib/ldap: Fix LdapConnection::encodeSortRules()
refs #9364
2015-09-03 17:47:54 +02:00
Eric Lippmann 70a6157631 lib/ldap: Call getConnection before bind
Looks more natural
2015-09-03 17:11:56 +02:00
Eric Lippmann cf917b59f8 lib: Fix PHPDoc of DbConnection::getDbApdater() 2015-09-03 16:20:29 +02:00
Johannes Meyer 9e558c9861 Add class SummaryNavigationItemRenderer
refs #5600
2015-09-03 15:53:42 +02:00
Johannes Meyer ad6a2938ab Add class BadgeNavigationItemRenderer
refs #5600
2015-09-03 15:53:23 +02:00
Johannes Meyer b53fb04a0f Move navigation related renderer classes to the new namespace
refs #5600
2015-09-03 15:52:37 +02:00
Johannes Meyer 7adfc58878 NavigationItem: Add missing return keyword in method render()
refs #5600
2015-09-03 15:04:39 +02:00
Johannes Meyer a930ea7f7a Navigation: Add method render()
refs #5600
2015-09-03 15:04:07 +02:00
Johannes Meyer 9a725330fb NavigationItem: Provide the item to the renderer before calling render
refs #5600
2015-09-03 14:22:38 +02:00
Johannes Meyer 16ece09b0a NavigationItemRenderer: Add option $target
refs #5600
2015-09-03 13:36:34 +02:00
Johannes Meyer 67dee62c57 NavigationItemRenderer: Add support for options
refs #5600
2015-09-03 13:36:13 +02:00
Johannes Meyer c3ad665c15 Navigation: Fix accessing a non-existent and static variable
refs #5600
2015-09-03 12:52:07 +02:00
Johannes Meyer c35db55857 Navigation: Add missing new keyword
refs #5600
2015-09-03 11:26:27 +02:00
Johannes Meyer 2834e206d5 NavigationItem: Add support for custom renderers
refs #5600
2015-09-03 11:25:51 +02:00
Johannes Meyer 811269df01 NavigationItem: Rename method getView() to view()
refs #5600
2015-09-03 10:39:11 +02:00
Johannes Meyer 206168672b NavigationItem: Add method getUniqueName()
refs #5600
2015-09-03 10:22:47 +02:00
Johannes Meyer e6a6ae996a Navigation: Merge other navigations more sophisticated
refs #5600
2015-09-03 09:57:52 +02:00
Johannes Meyer 537db6000e NavigationItem: Add method merge()
refs #5600
2015-09-03 09:56:22 +02:00
Johannes Meyer a626e8f7fb NavigationItem: Allow to set and get single url parameters
refs #5600
2015-09-03 09:56:02 +02:00
Johannes Meyer 1fb5c96ef1 Navigation: Add method order()
refs #5600
2015-09-03 08:52:02 +02:00
Johannes Meyer 00447488ee NavigationItem: Drop interface Countable
$item->count(), count of what?
$item->getChildren()->count(), Its children, of course!

refs #5600
2015-09-03 08:49:30 +02:00
Johannes Meyer f4a6ab73c0 NavigationItem: Add property priority
refs #5600
2015-09-03 08:33:13 +02:00
Johannes Meyer 1393db687b NavigationItem: Adjust some docblocks
refs #5600
2015-09-02 15:42:54 +02:00
Johannes Meyer 298c4ad38b NavigationItem: Cast a string to Url already in setUrl()
refs #5600
2015-09-02 15:35:08 +02:00
Johannes Meyer 1788cc9b6a NavigationItem: Use setView() to initiliaze $view
refs #5600
2015-09-02 15:33:45 +02:00
Johannes Meyer 6802c0a9e4 NavigationItem: Do not disable the complete parent hierarchy..
..if just a child gets deactivated.

refs #5600
2015-09-02 15:32:37 +02:00
Johannes Meyer 2bfeb335a5 NavigationItem: Add method setParent() and getParent()
refs #5600
2015-09-02 15:30:35 +02:00
Johannes Meyer e2beb7d027 NavigationItem: Return the name if no label is set in getLabel()
refs #5600
2015-09-02 15:27:34 +02:00
Johannes Meyer 1ef4a2f7d0 NavigationItem: Do not provide a default for setProperties()
refs #5600
2015-09-02 15:26:07 +02:00
Johannes Meyer 8a29660226 NavigationItem: Overwrite the property in method setAttributes()
A setter sets something instead of patching it.

refs #5600
2015-09-02 15:25:10 +02:00
Johannes Meyer 5efcb18fa0 NavigationItem: Set the parent on a child in method setChildren()
refs #5600
2015-09-02 15:21:40 +02:00
Johannes Meyer c9050e2f21 NavigationItem: Initialize $children before setting the properties
refs #5600
2015-09-02 15:20:26 +02:00
Johannes Meyer 62f7a49a45 NavigationItem: Reduce code complexity in method addChild()
refs #5600
2015-09-02 15:17:26 +02:00
Johannes Meyer c03109c4c6 NavigationItem: Catch exceptions thrown in __toString()
refs #5600
2015-09-02 15:16:05 +02:00
Johannes Meyer 95a3f1c011 Navigation: Clear the parent name from a configured navigation item
refs #5600
2015-09-02 15:14:55 +02:00
Johannes Meyer 29413360d9 Navigation: Add method merge()
refs #5600
2015-09-02 13:34:56 +02:00
Johannes Meyer a4c2081f64 Navigation: Remove method hasItems()
Redundant, as it's expressible with "! $nav->isEmpty()".

refs #5600
2015-09-02 13:29:07 +02:00
Johannes Meyer f449c78dbf NavigationItem: Make it having a name instead of a id..
..and require it as first argument on construction time.

refs #5600
2015-09-02 13:27:12 +02:00
Johannes Meyer b3159ee60d NavigationItem: Accept arrays for method setChildren()
refs #5600
2015-09-02 12:59:05 +02:00
Johannes Meyer 83974b7698 Navigation: Add method fromConfig()
refs #5600
2015-09-02 12:58:12 +02:00
Johannes Meyer 997b57834c Navigation: Add method fromArray()
refs #5600
2015-09-02 12:57:49 +02:00
Johannes Meyer 0788041c43 Navigation: Accept item configuration for method addItem()
And check an item's permission.

refs #5600
2015-09-02 12:57:14 +02:00
Russell Kubik 056ab0c96c Fix that DbUserBackend::inspect() reports 0 users when only one exists
refs #9739

Signed-off-by: Eric Lippmann <eric.lippmann@netways.de>
2015-09-01 23:08:24 +02:00
Eric Lippmann d2a4b880b1 Revert "Accept DbUserBackends with only one single user"
This reverts commit c8d065b3e0.

There's a PR on GitHub open that was contributed earlier than this fix. Thus giving credit to the PR's author.

refs #9739
2015-09-01 23:05:34 +02:00
Emil Vikström e3ea0e5949 Use yellow for warning logs in ANSI CLI
Signed-off-by: Eric Lippmann <eric.lippmann@netways.de>
2015-09-01 22:55:42 +02:00
Eric Lippmann 935691233b vendor: Upgrade Zend to version 1.12.15
refs #10044
2015-09-01 22:53:57 +02:00
Johannes Meyer c154f96d44 Navigation: Add method createItem()
refs #5600
2015-09-01 16:02:44 +02:00
Eric Lippmann 4adaf5a2d0 vendor: Upgrade Parsedown to version 1.5.0
refs #10044
2015-09-01 14:25:18 +02:00
Eric Lippmann 63734b923a vendor: Upgrade JShrink to version 1.1.0
refs #10044
2015-09-01 13:00:00 +02:00
Eric Lippmann d4669c7832 vendor: Upgrade HTMLPurifier to version 4.7.0
refs #10044
2015-09-01 12:57:57 +02:00
Eric Lippmann 6556059afd vendor: Uprade php-font-lib to version 0.4
refs #10044
2015-09-01 12:55:34 +02:00
Eric Lippmann 52b0c8c258 lib: Add navigation classes (WIP)
- Lacks custom renderer functionality
- Lacks navigation item priorities
- Lacks permission handling

refs #5600
2015-09-01 12:48:45 +02:00
Eric Lippmann e78f833232 Merge branch 'bugfix/language-negotiation-safari-7818'
fixes #7818
2015-08-31 16:46:32 +02:00
Eric Lippmann 4a5d2784fb Normalize languages for negotiation to lowercase
refs #7818
2015-08-31 16:45:14 +02:00
Eric Lippmann 4fb6856caf Fix exception when navigating to the preferences after namespacing all controllers 2015-08-31 10:19:30 +02:00
Eric Lippmann 38ef8c7f11 lib: Fix PHPDoc of Translator::splitLocaleCode() 2015-08-31 09:08:31 +02:00
Eric Lippmann e7e1b1a98e Dispatcher: Default to the default module if no module has been given in the request
This is most likely the case when custom routes have been added to the router w/o the module parameter being set.

refs #5786
2015-08-28 13:13:20 +02:00
Eric Lippmann c0eb0cbe6a modules: Tell the dispatcher that the static controller is to be found in the default module
refs #5786
2015-08-28 13:13:07 +02:00
Eric Lippmann bcc02f50ec lib: Optimize imports in webrouter 2015-08-28 09:42:49 +02:00
Eric Lippmann 9cf56410e9 lib: Fix PHPDoc of Form::populate() 2015-08-27 15:52:13 +02:00
Eric Lippmann 4070f6c75b Merge branch 'master' into feature/namespaced-controllers-5786 2015-08-27 15:05:44 +02:00
Johannes Meyer f90f7b1528 User: Consider the shortest wildcard permission more important
I hope we do not need a fourth attempt to get this right...

fixes #10016
2015-08-27 14:24:04 +02:00
Eric Lippmann c5d0094e8e lib: Add AlreadyExistsException 2015-08-27 13:56:24 +02:00
Eric Lippmann ba09b02f5c lib: Fix PHPDoc of Version::get() 2015-08-27 13:06:49 +02:00
Eric Lippmann df66d0b0f5 lib: Add PHPDoc to Version 2015-08-27 13:06:31 +02:00
Eric Lippmann 28009eb563 Rename controller namespace to Controllers
refs #5786
2015-08-27 13:03:45 +02:00
Eric Lippmann eb30ecd776 Revert "Fix failing search dashboard test"
This reverts commit 7c0dbe0077f56aef5f2a744761b47a0715dd591a.

Fixed by using t() in the SearchDashboard already.
2015-08-27 12:58:56 +02:00
Eric Lippmann 176177d874 Fix failing search dashboard test 2015-08-27 12:58:56 +02:00
Eric Lippmann c294283636 Merge branch 'bugfix/service-grid-grouping-postgres-9333'
Conflicts:
	modules/monitoring/application/controllers/ListController.php
	modules/monitoring/library/Monitoring/Backend/Ido/Query/IdoQuery.php

fixes #9333
fixes #9538
2015-08-27 12:58:49 +02:00
Johannes Meyer 8cc1970a9f SearchDashboard: Use t() instead of the view helper
Since it's library code we do not need to use the module-aware
translation helper.
2015-08-25 16:51:50 +02:00
Eric Lippmann e27d2e998b monitoring: Fix grouping and ordering of the service when using display names
refs #9538
refs #9333
2015-08-25 16:13:34 +02:00
Eric Lippmann c8790fad93 Merge branch 'bugfix/service-grid-display_name-9538' into bugfix/service-grid-grouping-postgres-9333
Conflicts:
	library/Icinga/Data/PivotTable.php
	modules/monitoring/application/controllers/ListController.php
2015-08-25 15:51:20 +02:00
Eric Lippmann 403f7016ca lib: Allow to set axis header columns in the pivot table
PivotTable::toArray() now returns the pivot data and the pivot header.

refs #9538
2015-08-25 14:46:23 +02:00
Eric Lippmann 96fb3b5d4b Merge branch 'master' into feature/api-9606 2015-08-25 09:25:59 +02:00
Eric Lippmann ec390d7a8b lib: Add Controller::httpBadRequest() for responding w/ HTTP 400 immideately
refs #9606
2015-08-24 15:59:59 +02:00
Eric Lippmann 8329f5de22 lib: Add HttpBadRequestException
refs #9606
2015-08-24 15:59:05 +02:00
Eric Lippmann a20eef50e1 Set up the user backend factory before setting up the user
refs #9606
2015-08-24 15:37:55 +02:00
Johannes Meyer 93f7bfeeb9 Allow to dis-/enable stacktraces in a user's preferences
refs #9113
2015-08-24 14:47:37 +02:00
Johannes Meyer 0c47aececc Allow to disable stack traces globally
refs #9113
2015-08-24 14:44:54 +02:00
Johannes Meyer 7c86f19aee SearchDashboard: Utilize createDashlet() and set a progress label
refs #8848
2015-08-24 12:36:59 +02:00
Johannes Meyer 320a4080ec Dashlet: Add support for CSS animated progress labels
refs #8848
2015-08-24 12:36:35 +02:00
Johannes Meyer db4c81a093 Pane: Add method createDashlet()
refs #8848
2015-08-24 12:35:38 +02:00
Eric Lippmann ceaba90872 css: Load mixins.less 2015-08-21 16:45:05 +02:00
Matthias Jentsch 675a130787 Fix active configuration/application menu highlighting
Fix a bug that caused the application config to not be set to active when navigating through history.

refs #9761
2015-08-21 16:04:04 +02:00
Johannes Meyer d31b60102e Form: Fix that form titles are missing
The description may not be set at the time
loadDefaultDecorators() is called.
2015-08-21 14:20:09 +02:00
Matthias Jentsch 2d9d3a0788 Detect exact names during autocompletion
Do not recognize substrings of strings as the full string in searchMatch.

fixes #9633
2015-08-21 13:48:11 +02:00
Johannes Meyer 9ca278d7b2 Merge branch 'master' into feature/activity-indicators-for-form-submits-8369 2015-08-21 13:37:54 +02:00
Johannes Meyer fbca28c024 Form: Only add a form header if a description is set
refs #8369
2015-08-21 13:34:17 +02:00
Johannes Meyer 747f6dcf77 Form: Show the form autosubmit warning in the header tag...
...and use a unique id for the progress element.

refs #8369
2015-08-21 11:40:38 +02:00
Eric Lippmann 85ef98f72d lib: Add PHPDoc to Request::hasCookieSupport() 2015-08-21 11:27:03 +02:00
Johannes Meyer b9d64b40a4 forms.less: Fix help icon layout 2015-08-21 10:36:08 +02:00
Johannes Meyer 7244906515 Wizard: Use a constant for the name and id of the progress element
refs #8369
2015-08-21 10:16:23 +02:00
Johannes Meyer 07b17cc701 Wizard: Add Spinner decorator to the first (and only) submit button
refs #8369
2015-08-21 09:52:57 +02:00
Matthias Jentsch 44271471e3 Allow declarative definitions of badge renderers and improve interface
Allow the data backend, columns and generated tooltips to be defined in the configuration instead of providing subclasses for every new configuration. Provide an abstract BadgeMenuItemRenderer that allows creating Badges with less boilerplate.

fixes #9694
2015-08-20 18:16:33 +02:00
Eric Lippmann 5da139943c lib: Fix type hint for $menuItems in Module 2015-08-20 16:59:02 +02:00
Eric Lippmann 9aa62c9898 lib: Fix type hint for $tabs in Module 2015-08-20 16:58:24 +02:00
Johannes Meyer 46cd47b73c Form: Automatically set data-progress-element...
..for forms with form based autosubmit warnings.

refs #8369
2015-08-20 16:54:20 +02:00
Eric Lippmann 800173b19f lib: Fix type hint for $router in Module 2015-08-20 16:47:17 +02:00
Eric Lippmann 5d8f091209 lib: Don't alias Zend classes in Module 2015-08-20 16:46:31 +02:00
Eric Lippmann f24449b225 modules: Register controller namesoace in Module::registerWebIntegration()
Else we get an exception when loading modules on the CLI because Zend classes are not autoloaded.

refs #5786
2015-08-20 16:24:12 +02:00
Johannes Meyer 32f8c0770c Wizard: Use a single spinner for all submit buttons
refs #8369
2015-08-20 16:13:56 +02:00
Johannes Meyer 20f144bd4b Spinner: Accept option `id'
refs #8369
2015-08-20 16:13:30 +02:00
Eric Lippmann c5f444efe8 lib: Don't alias Zend classes in the ActionController 2015-08-20 16:10:39 +02:00
Eric Lippmann 6ca02a519b lib: Fix type hint of Controller::getResponse() 2015-08-20 16:07:24 +02:00
Eric Lippmann 1c5a784022 lib: Move Request::sendJson() to Response::sendJson()
refs #9606
2015-08-20 16:05:45 +02:00
Eric Lippmann 870b73ae09 lib: Rename Request::getIsApiRequest() to ::isApiRequest()
There's no setter involved.

refs #9606
2015-08-20 16:02:25 +02:00
Eric Lippmann 62f0281a62 lib: Fix type hint of Controller::getRequest() 2015-08-20 16:00:24 +02:00
Eric Lippmann 1130e453f6 lib: Fix typos in the Form's PHPDoc 2015-08-20 15:57:52 +02:00
Eric Lippmann f9f813e50b lib: Fix PHPDoc of Form::populate() 2015-08-20 15:56:45 +02:00
Eric Lippmann 0ce4e12db8 lib: Fix type hints for Form::getElements() 2015-08-20 15:55:18 +02:00
Eric Lippmann dd23bd9397 Form: Respond w/ JSON-encoded messages if API requests fail
refs #9606
2015-08-20 15:48:42 +02:00
Johannes Meyer a77dc3665c Form: Show a spinner for ongoing form submits
This will only be shown if there's no progress label set.

refs #8369
2015-08-20 15:05:02 +02:00
Johannes Meyer 275b57cb69 Form: Allow to set a progress label
refs #8369
2015-08-20 15:04:15 +02:00
Johannes Meyer 690d60672c Introduce form element decorator Spinner
refs #8369
2015-08-20 14:34:43 +02:00
Eric Lippmann 71ff4512c3 lib/form: Bypass sent and submit handling if the form is an API target
refs #9606
2015-08-20 13:11:36 +02:00
Eric Lippmann e07cdd21ac lib: Add Request::sendJson()
refs #9606
2015-08-20 13:11:36 +02:00
Matthias Jentsch 9e40f5f2c7 Remove option to skip certificate validation to prevent insecure configurations
Skipping certificate validation will allow MITM on every single request and not give any real security over just running unencrypted queries. On top of that, there is no way to configure this behavior from within PHP except of setting environment variables, which is really hacky and has side effects on other requests.

fixes #9607
2015-08-19 16:20:33 +02:00
Johannes Meyer 63e639caf0 Handle module identification directly in the ActionController
Fixes some issues with more complex customisations in a
module's controller.
Obsoletes: 93f8297344
2015-08-19 13:39:46 +02:00
Johannes Meyer 036da072c5 Revert "ActionController: Give modules a chance to dynamically require auth"
This reverts commit 93f8297344.
2015-08-19 13:39:46 +02:00
Eric Lippmann 7abc5778ea Fix PHPDoc in the String helper 2015-08-19 12:50:05 +02:00
Eric Lippmann 1492218962 Fix SortBox not usable w/o SortRules
The SortBox assumes the first avaiable sort column as default column if the given Sortable does not implement the SortRules interface.
When changing the direction of the default sort column, the sort box did not pass the column to Sortable::sort(). Thus the Sortable did not know by which column to sort.
Now the SortBox passes the sort column even if the direction of the default column is changed.

refs #9333
2015-08-18 14:18:48 +02:00
Eric Lippmann f2f1e12b8e Let PivotTable implement Sortable
refs #9333
2015-08-18 14:17:07 +02:00
Eric Lippmann d1f9c5ff0d Don't call setUseSubqueryCount() in the PivotTable
The query implementation handles this automatically.

refs #9333
2015-08-18 13:42:06 +02:00
Eric Lippmann d0f2887367 Fix PHPDoc indents in the PivotTable
refs #9333
2015-08-18 13:35:50 +02:00
Eric Lippmann 0a7a8d377e Remove unnecessary import in the PivotTable
refs #9333
2015-08-18 13:34:14 +02:00
Eric Lippmann 3c812e6d2b Register module controller namespace
refs #5786
2015-08-18 13:02:54 +02:00
Eric Lippmann d267686ef4 Fix PHPDoc in Web to read class loader instead of auto loader
refs #5786
2015-08-18 12:51:46 +02:00
Eric Lippmann cb8fb93ab0 Fix PHPDoc in ApplicationBootstrap to read class loader instead of auto loader
refs #5786
2015-08-18 12:50:46 +02:00
Johannes Meyer 93f8297344 ActionController: Give modules a chance to dynamically require auth 2015-08-18 11:28:02 +02:00
Eric Lippmann e31dce97a9 Fix dispatching namespaced module controllers
refs #5786
2015-08-18 11:11:28 +02:00
Eric Lippmann fae2e0979a Fix class loading to not rely on the longest namespace match
refs #5786
2015-08-18 10:50:29 +02:00
Eric Lippmann 234dc951d2 Remove the is_dir check from the ClassLoader
refs #5786
2015-08-18 09:32:00 +02:00
Eric Lippmann ac99e54f17 Fix PHPDoc in ClassLoader
refs #5786
2015-08-18 09:27:34 +02:00
Eric Lippmann a382a563d5 Move Loader::__destruct to the bottom of the method list
refs #5786
2015-08-18 09:10:23 +02:00
Eric Lippmann 13fc7e16f2 Rename Loader to ClassLoader
refs #5786
2015-08-18 09:06:58 +02:00
Johannes Meyer e5f249270a Merge branch 'master' into feature/provide-a-complete-list-of-filter-columns-9029 2015-08-17 15:41:40 +02:00
Eric Lippmann b6fdbf055e Remove unnecessary pass by refenrece in the loader
refs #5786
2015-08-17 14:35:35 +02:00
Eric Lippmann 7563a7a0ba Rename Loader::unRegister() to Loader::register() 2015-08-17 14:34:39 +02:00
Johannes Meyer f7b0e6956d FilterEditor: Only apply the filter if a query is set
refs #9029
2015-08-17 13:43:48 +02:00
Eric Lippmann 7252f3237a Introduce a constant for the controller namespace
refs #5786
2015-08-17 13:43:34 +02:00
Eric Lippmann 06e879f078 Throw an expcetion in our Dispatcher if the controller is not an instance of Zend_Controller_Action_Interface
refs #5786
2015-08-17 13:38:16 +02:00
Eric Lippmann e26a7fd4d1 Use Zend_Cotroller_Dispatcher_Standard::getActionMethod() in the Dispatcher
refs #5786
2015-08-17 13:34:47 +02:00
Eric Lippmann 1e1d4531c6 Register the controller namespace
refs #5786
2015-08-17 13:31:26 +02:00
Eric Lippmann 965fee1e9e Fix 'void' method result used in the Dispatcher
refs #5786
2015-08-17 13:31:05 +02:00
Eric Lippmann 8b32edd6e9 Default to Zend's dispatcher if the controller name is empty
refs #5786
2015-08-17 13:29:47 +02:00
Eric Lippmann d4de7c0519 lib: Make Loader::registerNamespace() fluent
refs #5786
2015-08-17 13:29:15 +02:00
Eric Lippmann e8c0e97bb3 Add PHPDoc to the Dispatcher
refs #5786
2015-08-17 13:10:01 +02:00
Eric Lippmann f972a034e7 Fix license header in Dispatcher
refs #5786
2015-08-17 13:08:41 +02:00
Eric Lippmann 392eee5a1f Merge branch 'master' into feature/namespaced-controllers-5786
Conflicts:
	library/Icinga/Application/Web.php
2015-08-17 12:59:44 +02:00
Johannes Meyer 97245c5166 FilterEditor: Uppercase all words for non labelled filter columns
refs #9029
2015-08-14 15:36:54 +02:00
Johannes Meyer ca4789f114 FilterEditor: Fix automatic filter label creation
refs #9029
2015-08-13 17:20:40 +02:00
Johannes Meyer 1e6c394693 Controller: Create the filter editor in setupFilterControl() ...
...instead of demanding a concrete controller to do so.
We still have to decide how to handle parameter preservation
properly.

refs #9029
2015-08-13 17:05:13 +02:00
Johannes Meyer 63fb8dcafa FilterEditor: Do not show an empty line at the bottom of the select 2015-08-13 15:59:00 +02:00
Johannes Meyer 41b80efa0e FilterEditor: Support queries implementing the FilterColumns interface
refs #9029
2015-08-13 15:58:04 +02:00
Johannes Meyer 59e7731efb RepositoryQuery: Implement interface FilterColumns
refs #9029
2015-08-13 14:21:39 +02:00
Johannes Meyer bcdb670f5c Introduce interface Icinga\Data\FilterColumns
refs #9029
2015-08-13 14:21:11 +02:00
Johannes Meyer 38622e96d5 Repository: Allow implementations to provide search columns
refs #9029
2015-08-13 14:20:21 +02:00
Johannes Meyer 4b6849eea7 Repository: Introduce query column blacklists
We can no longer use $filterColumns to blacklist query columns so
there is now another set of column names required to achieve this.

refs #9029
2015-08-13 14:06:27 +02:00
Johannes Meyer 2e7ff7dd6e FilterEditor: Require an instance of Filterable for setQuery()
refs #9029
2015-08-13 11:35:45 +02:00
Johannes Meyer fc35f3e46b FilterEditor: Apply the filter on the query internally
refs #9029
2015-08-13 11:33:25 +02:00
Johannes Meyer 069fcc40ea FilterEditor: Accept null for method setColumns()
refs #9029
2015-08-13 11:30:26 +02:00
Johannes Meyer 9ad14fc644 FilterEditor: Accept null for method setSearchColumns()
refs #9029
2015-08-13 11:30:05 +02:00
Alexander Fuhr a9ff6eebc0 Merge branch 'master' into bugfix/cookie-support-7383 2015-08-13 11:22:14 +02:00
Alexander Fuhr 813154f6ef Cookie: Make it no static and use the request
refs #7383
2015-08-13 11:19:48 +02:00
Alexander Fuhr 2332b94f0b Request: Add getResponse() to retrieve the Response
refs #7383
2015-08-13 11:19:08 +02:00
Johannes Meyer fa1e3a763d Do not show the full layout on the login page
...

refs #9892
2015-08-13 08:12:30 +02:00
Alexander Fuhr ad8f16c185 Cookie: Set the rigth license line header
refs #7383
2015-08-11 16:37:05 +02:00
Alexander Fuhr cea3727c97 Merge conflicts 2015-08-11 16:35:14 +02:00
Eric Lippmann 1495cf5d04 Merge branch 'bugfix/icingacli-no-request-object-9375'
fixes #9375
2015-08-11 09:20:59 +02:00
Matthias Jentsch 438f2650db Conform to coding guidelines
Use exclusively getters and setters for accessing class variables. Add better documentation to INI parser and writer classes.
2015-08-10 15:15:40 +02:00
Matthias Jentsch fe805c82ca Support multi line values in INI files 2015-08-10 15:15:40 +02:00
Eric Lippmann aa4e3c5a22 Dashboard: Defer construction of the Url object to Dashlet::getUrl()
Before, the Url object was constructed in Dashlet::setUrl() and Dashlet::__construct8) which lead to an exception when parsing a module's configuration.php from our CLI.

refs #9375
2015-08-10 14:05:08 +02:00
Eric Lippmann 1363ea4370 Menu: Defer construction of the Url object to Menu::getUrl()
Before, the Url object was constructed in Menu::setUrl() which lead to an exception when parsing a module's configuration.php from our CLI.

refs #9375
2015-08-10 14:05:00 +02:00
Eric Lippmann b0a75dd89b lib: Fix PHPDoc in ConfigObject 2015-08-10 13:25:08 +02:00
Johannes Meyer 282aaa6e5b Load additional static files for modules, really
Since we're only processing the config script upon calling
Module::hasJs/Css() if no module.js or module.css exists,
we need to ensure that it's processed when calling
Module::getJS/CssFiles().

refs #9702
2015-08-10 10:00:02 +02:00
Matthias Jentsch aa3cc9847d Fix issue that bricked the dashboard when quotes in dashlets
Escape more special chars in IniWriter, support reading escaped readers in IniParser and add tests for all important escape cases.
2015-08-07 12:55:19 +02:00
Matthias Jentsch 308c8ccf79 Fix issue that caused exceptions when using sections with trailing or leading whitespaces
Trim all incoming section identifier to prevent ambiguities between parsd sections and input sections.
2015-08-07 09:26:50 +02:00
Matthias Jentsch eebd8be746 Prevent configuration changes that would break PHP lib ini parser 2015-08-06 17:39:46 +02:00
Matthias Jentsch 9b373e9d10 Fix issue that caused IniWriter to fail on empty configs 2015-08-06 17:21:52 +02:00
Johannes Meyer c7cc9e66df JavaScript: Load all available module javascript files
refs #9702
2015-08-06 15:15:02 +02:00
Johannes Meyer 9cea83242c StyleSheet: Load all available module stylesheets
refs #9702
2015-08-06 15:14:29 +02:00
Johannes Meyer 712d545f48 Module: Allow to define additional Javascript files
refs #9702
2015-08-06 15:10:54 +02:00
Johannes Meyer 51aa22d429 Module: Allow to define additional CSS/LESS files
refs #9702
2015-08-06 15:10:33 +02:00
Johannes Meyer 59ef54314a Extend the Web bootstrapper from the EmbeddedWeb bootstrapper
In a embedded web environment we may also need a request and response.

refs #9702
2015-08-06 15:08:41 +02:00
Johannes Meyer 0695d5900c Merge branch 'master' into feature/less-costly-count-queries-for-history-views-8615 2015-08-06 13:11:28 +02:00
Eric Lippmann 528382098e db: Respect group by for count queries, really
Missed that Johannes introduced DbQuery::getGroup().

refs #9828
2015-08-06 10:46:40 +02:00
Johannes Meyer 7662545c2a SimpleQuery: Provide a getter for the current iterator position
refs #8615
2015-08-06 09:39:23 +02:00
Matthias Jentsch 60675979bc Merge branch 'bugfix/creating-dashlet-with-parentheses-9530'
fixes #9530
2015-08-05 18:22:29 +02:00
Matthias Jentsch f8e2dc850c Drop IniEditor and clean up IniWriter
Replace the ini editor code with a new parser implementation that manipulates a DOM. Do not support capabillities that are no longer needed, like nested configurations, section inheritance, section-less properties.
2015-08-05 18:10:17 +02:00
Johannes Meyer a0d5509f19 DbQuery: Drop attribute $maxCount
It's not used anywhere and completely useless the way it's implemented.
2015-08-05 10:54:14 +02:00
Eric Lippmann 064e821383 lib: Fix wrong count for queries having a group by clause
fixes #9828
2015-08-04 16:25:34 +02:00
Matthias Jentsch 28e1b3119c Remove unused "extends"-code 2015-08-04 15:14:10 +02:00
Alexander Fuhr c3fe14a205 Modules/Manager: Fix that non-existent modules can be disabled
fixes #9374
2015-08-04 14:34:30 +02:00
Markus Frosch 083900dae0 Implement DblClickSelect as a Icinga Behavior
refs #9826
2015-08-04 14:06:33 +02:00
Matthias Jentsch 7095ad5bc7 Improve ini editor and dashlet input validation 2015-08-04 13:23:30 +02:00
Matthias Jentsch d88c628b6b Escape section names before applying regex
refs #9530
2015-08-04 13:14:46 +02:00
Johannes Meyer d1917ad2b4 Merge branch 'master' into bugfix/do-not-use-count-queries-for-emptiness-checks-9632
Conflicts:
	modules/monitoring/application/views/scripts/service/history.phtml
2015-08-03 16:46:27 +02:00
Eric Lippmann 688a08585b Merge branch 'master' into bugfix/error-prone-generictts-9611
Conflicts:
	modules/monitoring/application/views/scripts/show/components/downtime.phtml
2015-08-03 15:05:45 +02:00
Johannes Meyer 9a0e47a3e1 SimpleQuery: Add method hasResult()
refs #9632
2015-08-03 14:49:33 +02:00
Johannes Meyer dbc2f98053 SimpleQuery: Initialize self::$iteratorPosition as late as possible
refs #9632
2015-08-03 14:09:55 +02:00
Eric Lippmann ea5db51213 Fix "Try to get an inexistent pane." when clicking on the "Search" tab 2015-08-03 13:01:11 +02:00
Eric Lippmann 139baffdc6 lib: Make Dashboard::$tabs protected
The SearchDashboard has to override Dashboard::getTabs() in order to set up the correct tab.
2015-08-03 13:01:11 +02:00
Eric Lippmann 177fafaa56 lib: Fix TicketHook's PHPDoc
refs #9611
2015-08-03 11:05:48 +02:00
Eric Lippmann 451be1e97f monitoring/hooks: Add TicketHook::createLinks()
Instead of calling preg_replace_callback w/o error handling in our view scripts, TicketHook::createLinks() will take care of that.

refs #9611
2015-07-31 15:31:41 +02:00
Johannes Meyer 99c69cc461 SimpleQuery: Add support for peek aheads
refs #9661
2015-07-31 13:51:39 +02:00
Johannes Meyer fe41d312ca RepositoryQuery: Do not bypass the query's own iterator
refs #9661
2015-07-31 13:12:41 +02:00
Johannes Meyer 16e54d3987 DbQuery: Be less error-prone while calling array_search 2015-07-31 11:05:23 +02:00
Johannes Meyer 6c105b867e Form: Be less error-prone while calling array_search 2015-07-31 11:05:09 +02:00
Johannes Meyer 5345831742 SessionNamespace: Be less error-prone while calling array_search 2015-07-31 11:04:51 +02:00
Johannes Meyer 449a19c3a3 Session: Be less error-prone while calling array_search 2015-07-31 11:04:43 +02:00
Johannes Meyer 24cb123f47 Tabs: Be less error-prone while calling array_search 2015-07-31 11:04:36 +02:00
Johannes Meyer 316a4d8b82 Merge branch 'master' into bugfix/allow-to-configure-how-to-manage-groups-9609 2015-07-30 16:16:04 +02:00
Eric Lippmann a234852f32 Merge branch 'feature/basic-auth-9660'
resolves #9660
2015-07-30 15:05:07 +02:00
Eric Lippmann feed927fd2 Let external auth win over session auth and session auth over http auth
refs #9660
2015-07-30 14:50:05 +02:00
Eric Lippmann 9060e8a034 lib: Only call Icinga::app()->getRequest() for getting the request outside of a controller
Saves a call to getFrontController().

refs #9660
2015-07-30 14:02:44 +02:00
Eric Lippmann 55ad2dd65f Don't fail if password contains a colon on basic auth
refs #9660
2015-07-30 13:59:47 +02:00
Eric Lippmann c594d6db33 Challenge client on invalid basic access auth credentials
refs #9660
2015-07-30 13:59:18 +02:00
Eric Lippmann 42d698a6b3 lib: Add Web::getResponse()
Use this method for retrieving the response object outside a controller.

refs #9660
2015-07-30 13:47:54 +02:00
Eric Lippmann 81aad9d6a6 Rename Notifiation::getMessages() to popMessages()
Because the call to popMessages()--before getMessages()--automatically resets the notification messages on the instance, popMessages() is a much better name for the method.

refs #9660
2015-07-30 13:45:39 +02:00
Eric Lippmann d545e1f7d1 lib: Don't write the empty notifications array into the session
I combined this w/ introducing some constants for notification types and PHPDoc.

refs #9660
2015-07-30 13:42:59 +02:00
Eric Lippmann 9aa1599a18 Form: Disable CSRF counter measure only on API requests
refs #9660
2015-07-30 12:04:22 +02:00
Eric Lippmann c23c7a5fa9 lib: Add Request::getIsApiRequest()
If the Accept header is set to application/json it's an API request.

refs #9660
2015-07-30 12:03:33 +02:00
Eric Lippmann 3aae37aff3 Don't redirect on external auth
refs #9660
2015-07-30 12:02:42 +02:00
Eric Lippmann db505281ee lib: Disable CSRF token on HTTP authenticated users and not XHR
refs #9660
2015-07-30 09:33:04 +02:00
Eric Lippmann 36ff2d8914 lib: Set User::$isHttpUser in Auth
refs #9660
2015-07-30 09:32:24 +02:00
Eric Lippmann 775f8cced6 lib: Introduce User::$isHttpUser
refs #9660
2015-07-30 09:31:58 +02:00
Eric Lippmann 9f0e48a0a1 Don't send the X-Icinga-Module header more than once
fixes #9349
2015-07-30 09:28:05 +02:00
Matthias Jentsch 20aa17c831 Merge branch 'bugfix/selected-row-lost-after-autorefresh-8623'
fixes #8623
2015-07-29 17:30:45 +02:00
Eric Lippmann cf8c680482 lib: Add basic access authentication (WIP)
refs #9660
2015-07-29 17:22:55 +02:00
Eric Lippmann ce2a196c4a lib/Web: Set up request before setting up the user
refs #9660
2015-07-29 17:22:10 +02:00
Matthias Jentsch 3e7cc299ec Fix issue that caused the refresh button to remove side bar
Do not apply base target globally for all toolbar elements, but specifically for those that should remove side-bars.

refs #8623
refs #6436
2015-07-29 17:18:52 +02:00
Thomas Gelf ba906d2fca FilterEditor: allow to set custom filter columns 2015-07-29 17:13:18 +02:00
Eric Lippmann db48a944e3 lib: Introduce Web::getRequest()
Basic auth will need the request before we set up the front controller.

refs #9660
2015-07-29 16:27:48 +02:00
Johannes Meyer fb7666e6bd LdapUserGroupBackend: Adjust usage of LdapCapabilities::hasAdOid()
Usage search ftw..
2015-07-29 16:26:39 +02:00
Eric Lippmann c3a057dbdb lib: Add AuthChain::setSkipExternalBackends() in favor of setIteratorMode()
There's only one mode.

refs #9660
2015-07-29 16:18:30 +02:00
Eric Lippmann 3ca85f9daa lib: Add Auth::getRequest()
Basic auth will require the request.

refs #9660
2015-07-29 15:56:45 +02:00
Eric Lippmann 96e3111f58 lib: Reorder functions in Auth
refs #9660
2015-07-29 15:52:56 +02:00
Eric Lippmann e7c7486097 lib: Fix PHPDoc in User
refs #9660
2015-07-29 15:46:53 +02:00
Eric Lippmann 37ef87b9ab lib: Fix PHPDoc in ExternalBackend
refs #9660
2015-07-29 15:46:40 +02:00
Eric Lippmann 1b5c5deace lib: Rename remote user to external user
We renamed our backend. Code now reflects this.

refs #9660
2015-07-29 15:44:32 +02:00
Eric Lippmann 432efcb089 lib: Handle Response::setRerenderLayout() correctly
The header is different if it's not a redirect.

refs #9660
2015-07-29 15:08:36 +02:00
Johannes Meyer 3f7081296b Merge branch 'master' into bugfix/allow-to-configure-how-to-manage-groups-9609 2015-07-29 15:02:20 +02:00
Eric Lippmann aaae7e03b4 lib: Introduce Response::setRerenderLayout()
Instead of handling response headers based on flags in our controllers, this should happen in the request for usage w/o controllers.

refs #9660
2015-07-29 14:39:45 +02:00
Eric Lippmann 91720810cc lib: Document Response::redirectAndExit()
refs #9660
2015-07-29 14:22:45 +02:00
Eric Lippmann a31c799043 lib: Introduce Response::getRequest()
refs #9660
2015-07-29 14:20:39 +02:00
Eric Lippmann ae4b7144cd lib: Implement Auth::getAuthChain()
Saves one use statement for auth chain usages.

refs #9660
2015-07-29 14:14:19 +02:00
Eric Lippmann 745e30259d lib: Implement AuthChain::authenticate()
Right now the LoginController has all the authentication which is kind of a mess. Further, the upcoming basic access authentication has to reuse this code.
Thus AuthChain::authenticate() is introduced to handle both cases.

refs #9660
2015-07-29 14:11:54 +02:00
Johannes Meyer 13edbf901d UserBackend: Implement interface ConfigAwareFactory
refs #9609
2015-07-29 13:44:26 +02:00
Johannes Meyer 83aafe8cda Allow to discover LDAP connections in the wizard as well
...
2015-07-29 09:26:53 +02:00
Eric Lippmann 4d44a0625c lib: Move UserBackendInterface::authenticate() to new interface Authenticatable
refs #9660
2015-07-29 09:25:14 +02:00
Eric Lippmann 2a4e614b5e Fix code style in AuthChain
refs #9660
2015-07-28 19:55:26 +02:00
Eric Lippmann 07849e0fea lib: Rename Authentication/Manager to Authentication/Auth
refs #9660
2015-07-28 17:08:55 +02:00
Eric Lippmann d2467fee16 Merge branch 'feature/secure-modules-9644'
resolves #9644
2015-07-28 14:00:27 +02:00
Eric Lippmann 47925d0fa0 lib: Make BaseTestCase abstract
Else phpunit tries to run the "test" though it shouldn't :)
2015-07-28 13:58:23 +02:00
Eric Lippmann fe73d6de83 Remove superfluous whitespaces in IcingaException
refs #9644
2015-07-28 13:46:32 +02:00
Eric Lippmann 7cfc78558d Merge branch 'master' into feature/secure-modules-9644
Conflicts:
	library/Icinga/Exception/IcingaException.php
2015-07-28 13:42:02 +02:00
Matthias Jentsch c8d065b3e0 Accept DbUserBackends with only one single user
fixes #9739
2015-07-28 12:41:08 +02:00
Johannes Meyer e231ef8061 SortBox: Fix some documenation and code style issues 2015-07-28 12:04:16 +02:00
Johannes Meyer f7b35b04f4 SortBox: Properly apply sort rules and show the user the default
refs #6644
2015-07-28 12:03:50 +02:00
Johannes Meyer d0dd4b09a0 Repository: It's "sort rules" in general, not "default sort rules" 2015-07-28 11:42:13 +02:00
Johannes Meyer 05af310e4c RepositoryQuery: Implement interface SortRules
refs #6644
2015-07-28 11:41:07 +02:00
Johannes Meyer cdc2182430 Introduce interface SortRules
refs #6644
2015-07-28 11:40:27 +02:00
Eric Lippmann b84650dd4b Document variadic function IcingaException::__construct properly
refs #9644
2015-07-28 10:45:00 +02:00
Eric Lippmann a68c05da7f lib: Require a message when throwing IcingaExceptions
refs #9644
2015-07-28 10:43:17 +02:00
Eric Lippmann 78285b95a3 Make Controller::httpNotFound() variadic
refs #9644
2015-07-28 10:40:02 +02:00
Eric Lippmann 2c8235d486 lib: Introduce IcingaException::create()
refs #9644
2015-07-27 16:25:41 +02:00
Johannes Meyer 9cc7b45458 Merge branch 'master' into bugfix/separate-sort-controls-9421 2015-07-27 11:50:05 +02:00
Johannes Meyer 4d9aa54814 SortBox: Utilize a separate form for each control
refs #9421
2015-07-27 11:43:47 +02:00
Matthias Jentsch a14da1c558 Make sure to log inspection messages into message log too
refs #9641
2015-07-27 09:44:07 +02:00
Johannes Meyer 86ad6c48ff Form: Automatically remove query parameters only for GET forms
refs #9421
2015-07-27 08:52:33 +02:00
Johannes Meyer 982e226db0 IcingaException: Add utility method to format exceptions as one-liner 2015-07-24 16:19:20 +02:00
Johannes Meyer c1a3d205bc Show more details about unhandled exceptions in the CLI
fixes #9646
2015-07-24 15:58:32 +02:00
Eric Lippmann 8358e9165c Don't require the module permission for the default module
refs #9644
2015-07-24 15:11:21 +02:00
Eric Lippmann 149a974a44 Fix coding style in Module.php
refs #9644
2015-07-24 15:06:25 +02:00
Eric Lippmann 519d025de5 Allow to get permissions and restrictions from unloaded modules
refs #9644
2015-07-24 14:24:48 +02:00
Eric Lippmann 444fdadf13 Allow to get unloaded modules via Manager::getModule()
refs #9644
2015-07-24 14:23:48 +02:00
Eric Lippmann ec1ddd82b3 Move Module::__construct to the top of the function list
refs #9664
2015-07-24 14:19:17 +02:00
Johannes Meyer 56759e7f21 Merge branch 'master' into feature/ldap-auth-backend-discovery-9602 2015-07-24 10:52:14 +02:00
Eric Lippmann 12856da971 Merge branch 'bugfix/filter-custom-variables-9692'
fixes #9692
2015-07-24 09:27:05 +02:00
Johannes Meyer f06be5c9bc LdapConnection: Let self::bind() return $this 2015-07-23 17:34:09 +02:00
Thomas Gelf 727a2d7141 Paginator: relax requirements to Paginatable
* we need no full query interface here
* introduced new interface "Paginatable"

fixes #9483
2015-07-23 13:48:49 +02:00
Eric Lippmann a34ad0227f Don't load module menu entries if the authenticated user lacks the module permission
refs #9644
2015-07-23 12:59:30 +02:00
Eric Lippmann fd77c30838 Don't load module dashboards if the authenticated user lacks the module permission
refs #9644
2015-07-23 12:57:23 +02:00
Eric Lippmann e8e01257e6 Change interface of SearchDashboard to allow setting a user before calling ::search()
Because search dashlets are provided by modules, the authenticated user's module permissions have to be validated before loading search dashlets provided by modules.

refs #9644
2015-07-23 12:53:08 +02:00
Eric Lippmann b4f4ce4406 Require the module's permission for every module automatically
Module permissions are not required if authentication is disabled on the controller.

refs #9644
2015-07-23 12:51:10 +02:00
Eric Lippmann b000ae3a37 Do not require permissions if authentication is not required
refs #9644
2015-07-23 12:50:02 +02:00
Eric Lippmann 5dcc307e87 Add namespace for module permissions to the module manager
refs #9644
2015-07-22 14:59:35 +02:00
Eric Lippmann aa567f8cd7 Introduce ModuleActionController::$requiresModulePermission
refs #9644
2015-07-22 14:56:02 +02:00
Eric Lippmann 13d954a956 Fix rawurlencode call 2015-07-22 13:36:25 +02:00
Eric Lippmann 52e352751e Revert "ModuleActionController: fix forward/X-Icinga-Module"
This reverts commit bf82bd4ce1.

We have a not merged branch for this.

refs #9349
2015-07-22 13:34:44 +02:00
Markus Frosch ab8e775188 Fix duplicate headers on forward() inside a controller
This avoids that the JS loader flattening arrays.

refs #9349
2015-07-22 13:34:44 +02:00
Johannes Meyer 54a77b7253 Merge branch 'master' into feature/support-for-file-uploads-8758 2015-07-22 13:30:56 +02:00
Johannes Meyer a199d36207 Stylesheet: Disable extendend @import statements provided by LESS
fixes #9687
2015-07-22 12:45:10 +02:00
Eric Lippmann 15cb24c6dc Throw an exception in IdoQuery::getCustomvarColumnName() in case the custom variable has not been joined
Queries extending IdoQuery and using the method getCustomvarColumnName() must be notified in case the custom variable has not been joined.

refs #9692
2015-07-22 12:03:34 +02:00
Thomas Gelf bf82bd4ce1 ModuleActionController: fix forward/X-Icinga-Module 2015-07-22 10:53:42 +02:00
Johannes Meyer cecd94be50 Merge branch 'master' into feature/support-for-file-uploads-8758 2015-07-22 08:47:24 +02:00
Johannes Meyer c0de2e6ee3 Form: Add missing use statement for the ProgrammingError exception 2015-07-22 08:39:24 +02:00
Eric Lippmann ce2b686252 Add file and line of logged menu item renderer exceptions
fixes #9696
2015-07-21 16:54:23 +02:00
Johannes Meyer 8f2849f32a Form: Improve code readability..
..and avoid the necessity to provide another mock when testing
Form::handleRequest().

refs #8758
2015-07-21 16:48:56 +02:00
Johannes Meyer 7c89887773 Form: Provide an absolute url as redirect url for successful frame uploads
refs #8758
2015-07-21 16:35:56 +02:00
Johannes Meyer 6c9819204d Form: Only work with a single type when handling redirect urls
$form->setRedirectUrl('some/url') still works, but $form->getRedirectUrl()
will only return instances of Icinga\Web\Url now.
2015-07-21 16:33:24 +02:00
Johannes Meyer fc481e527b Form: Process request parameter _frameUpload
This parameter is being used to flag a request as form submission issued
by utilizing an iframe. Appending it to a form's action causes no redirection
to take place in case of successful submission and a reduced but still valid
layout to be printed in any way. Redirection must be handled by the client
regarding the meta tag "redirectUrl".

refs #8758
2015-07-21 15:22:24 +02:00
Johannes Meyer 0a9a066749 Form: Do not create a new instance of Url when returning the redirect url
We're shifting parameters and by creating a new instance we'll lose
such changes.

refs #8758
2015-07-21 15:13:56 +02:00
Johannes Meyer 47fbc24f17 Merge branch 'master' into bugfix/improve-form-notifications-8983
Conflicts:
	library/Icinga/Web/Form.php
	modules/setup/application/forms/AdminAccountPage.php
2015-07-20 15:52:10 +02:00
Matthias Jentsch 5478027855 Bring back user count in ldap backend inspection
We already use count later in the wizard anyways.

refs #9630
2015-07-16 16:52:56 +02:00
Matthias Jentsch e357960d1e Add Inspection API to DB backend
refs #9641
2015-07-16 16:16:55 +02:00
Matthias Jentsch f4054d575b Add Inspection API to db connection
refs #9641
2015-07-16 15:29:45 +02:00
Matthias Jentsch c55ba6dff4 fix coding guideline violations 2015-07-16 13:51:35 +02:00
Matthias Jentsch ffe672c252 Improve message texts and scalabillity
Always start uppercase and don't use count() function until we've got a more scalable implementation in the LdapConnection.

refs #9630
2015-07-16 13:51:26 +02:00
Matthias Jentsch 6b8e5da76d Move all assertion functions into the inspect functions
Reduce code duplication and add class Inspection

refs #9630
2015-07-16 12:21:11 +02:00
Johannes Meyer 2164bb86c8 Tabs: Do not create a new instance of Url when rendering the refresh url
We're shifting parameters and by creating a new instance we'll lose
such changes.

refs #8758
2015-07-16 11:27:31 +02:00
Johannes Meyer 549f36f82c Form: Do not create a new instance of Url when setting the action
We're shifting parameters and by creating a new instance we'll lose
such changes.

refs #8758
2015-07-16 11:27:02 +02:00
Johannes Meyer d192410435 Introduce GET parameter _disableLayout to ... disable the entire layout
refs #8758
2015-07-16 11:23:48 +02:00
Matthias Jentsch 59c4f8d056 Use Inspection API in User Backend Form
refs #9630
2015-07-15 19:35:25 +02:00
Matthias Jentsch cf8b760ade Use Inspection API in LdapResourceForm
refs #9630
2015-07-15 19:33:47 +02:00
Matthias Jentsch 276aa43aa2 Upgrdae Inspection API again
Do not use InspectionException any more to reduce complexity of nested inspections, but keep error states
in the Inspection object itself.

refs #9630
2015-07-15 18:39:09 +02:00
Matthias Jentsch 6762ef053e Upgrade Inspection API
Reduce code duplication and stateffullnes by using InspectionException to indicate that an error was thrown, and only using one inspect function.

refs #9630
2015-07-15 17:51:18 +02:00
Matthias Jentsch 774d6ce94a Fix invalid function call in getCapabilities caused by refactoring 2015-07-15 15:36:32 +02:00
Johannes Meyer f3c8f2229f ErrorLabeller: Provide localized output for the MimeType validator
refs #8758
2015-07-15 15:15:15 +02:00
Matthias Jentsch af58d6964b Fix isEncrypted function broken by refactaring
refs #9608
2015-07-15 12:23:30 +02:00
Matthias Jentsch 7daa97a166 Clean up unneded code
Remove the now useless error handling cases in case encryption wasn't successful.

refs #9608
2015-07-15 11:31:56 +02:00
Matthias Jentsch 3b8b5b0022 Revert accidentally commited unneded changes 2015-07-15 11:16:06 +02:00
Matthias Jentsch 212111511a Fix violations of coding guidelines 2015-07-15 10:32:54 +02:00
Matthias Jentsch 84899e3e56 Revert some unneeded changes
refs #9605
2015-07-15 09:56:18 +02:00
Matthias Jentsch f4d8bfc309 Display connection test info when inspecting LdapConnections
refs #9605
2015-07-14 18:36:26 +02:00
Matthias Jentsch 3ddb8ca1bd Add abillity to discover AD version and vendor name to discovery
refs #9605
2015-07-14 18:32:44 +02:00
Matthias Jentsch 40d432100b Add a function to test the connection health
refs #9605
2015-07-14 18:29:58 +02:00
Matthias Jentsch 6599940e6c Introduce Interface for inspecting ldap connections
refs #9605
2015-07-14 12:30:16 +02:00
Johannes Meyer 23f7570ce0 LdapConnection: Don't run a discovery when preparing a new connection
fixes #9179
2015-07-10 10:45:10 +02:00
Johannes Meyer a8ac420897 LdapConnection: Establish a connection lazily 2015-07-10 09:51:39 +02:00
Johannes Meyer f5089dab1a DbUserGroupBackend: Use is_numeric() instead of is_int()
Using MySQL fetchColumn() returns integers for id fields, using MariaDB
though, fetchColumn() returns strings..

fixes #9572
2015-07-07 14:07:55 +02:00
Johannes Meyer caca219aa1 DbRepository: Consider table aliases while handling statement columns
Usually not required as there are no aliases for statements possible
but since we cannot differentiate everywhere what type of column
we're processing it is safer to always handle such.

fixes #9553
2015-07-03 13:06:10 +02:00
Johannes Meyer 066b3d9e28 ApplicationConfigForm: Make preference options be global options
refs #8709
2015-07-01 15:41:45 +02:00
Johannes Meyer 5b908d85bb Form: Fix notifications
* Coding style issues
* Notifications were not grouped by type
* Notifications of sub-forms were overwriting existing ones
(cherry picked from commit 147f6be714)
2015-07-01 14:26:03 +02:00
Johannes Meyer d5ba40ac19 Form: Add hint support
Hints are short messages displayed at the bottom of a form
used to describe specific aspects on how to interact with
the form.

refs #8983
2015-06-30 15:02:58 +02:00
Johannes Meyer ea6f707bdf FormDescriptions: Do not render a description for required fields
refs #8983
2015-06-30 14:28:27 +02:00
Johannes Meyer 147f6be714 Form: Fix notifications
* Coding style issues
* Notifications were not grouped by type
* Notifications of sub-forms were overwriting existing ones
2015-06-30 14:25:33 +02:00
Matthias Jentsch aecfb2eb97 Merge branch 'bugfix/multiselection-not-visible-9054'
fixes #9054
fixes #9346
2015-06-30 14:08:19 +02:00
Johannes Meyer 702a9c9523 Form: Show notifications and errors below any descriptions
They might be textually related to one or more descriptions.

refs #8983
2015-06-30 13:22:54 +02:00
Matthias Jentsch 6a7e3fe440 Document multi selection and use clearer names
refs #9054
2015-06-30 13:03:41 +02:00
Matthias Jentsch aec59d9941 Use current filter to highlight active rows instead of storing active rows in JS
Clean up selection code and move it into separate behavior and parse filter query to fetch selectable rows.

refs #9054
refs #9346
2015-06-29 18:48:42 +02:00
Johannes Meyer e795665421 Wizard: Issue a partial validation only if desired for a certain page
fixes #9306
2015-06-29 17:08:31 +02:00
Johannes Meyer cfd43f251e Revert "Sortable: Allow to check for a particular sort rule"
This reverts commit ae21baa41e.
2015-06-26 15:13:46 +02:00
Johannes Meyer 0fc8e6046c RepositoryQuery: Update sort order when converting sort rules in fetchAll 2015-06-26 15:13:31 +02:00
Johannes Meyer 0bcf7907d4 RepositoryQuery: Optimize value conversion in fetchColumn & -Pairs 2015-06-26 15:11:15 +02:00
Johannes Meyer ae21baa41e Sortable: Allow to check for a particular sort rule 2015-06-26 14:54:15 +02:00
Johannes Meyer 9055eb9cb7 RepositoryQuery: Do not sort by converted columns for limited queries
A limited query with conversion rules makes it impossible to sort
the result.
2015-06-26 14:24:03 +02:00
Johannes Meyer 56c506c8af SimpleQuery: Do not report to have a limit if there is none 2015-06-26 14:21:09 +02:00
Johannes Meyer 5d3eb5e8cb Repository: Allow to check for conversion rules of a specific column 2015-06-26 14:20:35 +02:00
Johannes Meyer 4ba84903f1 Repository: Accept already resolved columns as well
If a column was aliased, one was required to use the alias when
selecting, sorting or filtering. This is now not necessary anymore
as it's now possible to use the actual column name as well.
2015-06-26 13:07:21 +02:00
Johannes Meyer f956d09597 LdapConnection: Fetch attributes required for sorting the results 2015-06-25 15:51:19 +02:00