Commit Graph

79 Commits

Author SHA1 Message Date
Marius Hein 3a8a3b8f2c Monitoring backend: Change database objects to DbAdapterFactory
refs #4575
2013-08-19 18:29:26 +02:00
Eric Lippmann 329d63839b Monitoring/Commands: Fix tests
refs #4524
2013-08-16 17:38:50 +02:00
Jannis Moßhammer 0b479e3796 Code style fixes, fix documentation, fix tab parameters not being overwritten
refs #4512
2013-08-16 15:08:28 +02:00
Jannis Moßhammer 49d56f1eab Fix capitalization error in test require
refs #4512
2013-08-16 15:08:28 +02:00
Jannis Moßhammer b28c7f2f4c Refactor test, tabs and controller
- Remove unused methods,
- Code style
- Documentation for widgets
- Tabextensions instead of hardcoded tab actions
- Add tests for tabs
- Add missing phpdoc for touched files
- Fix tests

refs #4512
refs #4541
refs #4540
2013-08-16 15:08:28 +02:00
Matthias Jentsch 7f30b587be Change the StoreFactory to work with the DbAdapterFactory and fix code styling
Change the StoreFactory configuration to reference to a resource instead of
defining the whole database. Additionally fix docstrings, fix imports and fix
function calls to comply to coding style standards.

refs #4503
2013-08-15 14:16:34 +02:00
Matthias Jentsch f1040aad60 Add additional functionality and documentation for easier use through developers
Add functions to get information about currently available resources and add
documentation about class usage for developers.
2013-08-14 16:22:58 +02:00
Matthias Jentsch 3ce44b72e1 Change accepted exception type of unit test
Change the generic type Exception to a more specific one, to achieve
a more accurate test case.

resolves #4503
2013-08-14 16:22:58 +02:00
Matthias Jentsch 68deb735c0 Add the DbAdapterFactory to instanciate database adapters using resource names
Create the DbAdapterFactory to instanciate db adapters, add resources.ini to configure resources, change
the authentication Manager to fall back to backends with lower priority in case
of errors, update the current UserBackends to the changed environment. Also
adjust the documentation and existing unit tests.

resolves #4503
2013-08-14 16:22:58 +02:00
Jannis Moßhammer be29b8ff8f Make ConfigController and PreferenceController extensible by convention
- Rename ConfigurationController to ConfigController
- ConfigController and PreferenceController are now subclasses of
  BaseConfigController and BasePreferenceController
- Module and Application Config/Preference Tabs are detected via
  the ControllerTabCollector
- Moved Controller classes to Icinga/Web/Controller (this is why
  so many files are modified)

refs #4530
2013-08-14 16:08:15 +02:00
Matthias Jentsch eecbc233b9 Fix behavior of PreservingIniWriter that caused comments at the line end to be deleted
Implement a function to fetch comments at line end and use it to preserve
comments. Change the regular expressions used to parse lines to be more aware
of whitespaces between terms. Add automatic value and comment indentation
to produce cleaner output.
2013-08-14 15:05:10 +02:00
Eric Lippmann bd140f2828 CC: Fix phpcs errors of files changed in feature/datetime-element-4440
refs #4440
2013-08-12 16:43:10 +02:00
Eric Lippmann 2c217d1d06 Framework/DateTime: No longer use the Unix timestamp format since this ignores the time zone
refs #4440
2013-08-12 16:43:10 +02:00
Eric Lippmann 9f22905837 Framework/DateTimePicker: Set element's value to Unix timestamp after the input is considered valid
refs #4440
2013-08-12 16:43:09 +02:00
Eric Lippmann 3d104474d9 Tests: Fix UserTest as getTimeZone now returns a DateTimeZone object
refs #4440
2013-08-12 16:43:09 +02:00
Eric Lippmann ba00fd39df Framework: Get DateTimePicker's value as timestamp and add input validation
refs #4440
2013-08-12 16:43:09 +02:00
Eric Lippmann da7f619804 Framework: Implement DateFormat view helper
Support date, time and datetime formatting based on format strings
set either by the user or via config.ini. The view helper
FormDateTime uses the new helper already

refs #4440
refs #4424
2013-08-12 16:43:09 +02:00
Eric Lippmann 8af901e9ed Framework/User: Implement getTimezone to retrieve the user's Timezone
refs #4440
2013-08-12 16:42:50 +02:00
Eric Lippmann 93ae6d6811 Framework: mv Icinga\Config\Config to Icinga\Application\Config
refs #4543
2013-08-12 15:02:25 +02:00
Jannis Moßhammer ec17efe328 Add test for Dimension
refs #4192
2013-08-07 17:44:40 +02:00
Jannis Moßhammer b3e0d5e8ce Remove AbstractWidget and make Widget an interface
As Widget's already denote an abstract concept, the name
'AbstractWidget' is redundant. Also this class didn't do anything except
fetching a view via a singleton (which is now injected into the render method)
and bypassing the PHP class properties by creating a 'properties' array which is
filled with magic getters and setters (which now are simply php class properties)

Further changes:
- toString is removed, as this incorporated a lot of
   application logic which would cause unrecoverable
   errors when throwing exceptions
- renderToHtml is now just render and the view dependency must be
   passed, as a widget shouldn't be responsible for getting
   view instance (this means that <?= $this->tabs ?> is now
   <?= $this->tabs->render($this); ?> in the templates
- Controllers don't have $this->widget anymore as Widgets are
   directly instanciated with their class, allowing better code completion
   and avoiding hidden dependencies, also Widget::create is now removed
   in favor of direct instanciation.

refs #4192
2013-08-07 17:41:43 +02:00
Matthias Jentsch c1338898a6 Fix errors in function comments and move IniEditor into single class file
refs #4352
2013-08-07 15:58:51 +02:00
Matthias Jentsch 56e47fd084 Add an ini writer for configuration files
Add an ini writer that respects the file structure and the comments that may be
already present in the config file. Move Application/Config.php into
Config/Config.php.

refs #4352
2013-08-07 15:58:42 +02:00
Johannes Meyer 4befc9be94 Merge branch 'feature/preferences-backend-4069'
resolves #4069
2013-08-06 12:04:16 +02:00
Johannes Meyer 3ad4a4281d Add missing form tests and update documentation
refs #4439
2013-08-06 11:11:29 +02:00
Jannis Moßhammer 4f1e6ec720 Code style and comment fixes
refs #4441
2013-08-06 09:27:37 +02:00
Jannis Moßhammer b44de95caa Call commandhandler from commandcontroller actions
The CommandController now implements the calls to the specific
command methods and sends commands to the icinga process

refs #4441
2013-08-06 09:27:37 +02:00
Jannis Moßhammer d6bbed3a54 Extract the transport functions from the CommandPipe
- The CommandPipe class now delegates submission of commands to
  the Transport classes (LocalPipe or SecureShell)
- Added SSH options for non-interactive mode
- Refactored tests

refs #4441
2013-08-06 09:27:37 +02:00
Marius Hein 6112189b0c User preferences: Add database store
refs #4069
2013-08-05 16:56:03 +02:00
Marius Hein 6d1f349616 User preferences: Implement interfaces and ini store
refs #4069
2013-08-05 16:56:02 +02:00
Jannis Moßhammer 5a82c37ed1 Fix session test save path not being writable for vagrant user
The tests now try to write to /tmp and are skipped if this folder
is not writable. Also the test has been refactored a bit (comments,
assertion messages)

regs #4461
2013-08-02 15:35:05 +02:00
Jannis Moßhammer 5c3eb1d796 Style fixes and addParam test
refs #4381
2013-08-02 13:14:56 +02:00
Jannis Moßhammer 50ca1aec1a Refactor URL class and test
The constructor of the class is now private, instantiation happens
with Url::fromRequest and Url::fromPath. Also updated all occurences
of Url and fixed the Qlink helper to not overwrite the baseUrl with null
values

refs #4381
2013-08-02 13:14:55 +02:00
Marius Hein a1a8d4c157 Code compliance change and rename refs to User
refs #4066
2013-07-30 14:06:46 +02:00
Marius Hein 8510d57cf8 Prepare user settings api
Rework application bootstrap, move user object to its new location, implement web
request class to handle the user object.

refs #4066
2013-07-30 14:06:46 +02:00
Matthias Jentsch d5d0da6b1b Add missing property comments in DbUserBackendTest
refs #3769
2013-07-29 12:47:15 +02:00
Matthias Jentsch e51737f42a Fix the installation manual, comments and give the unit-test functions a more
verbose name

refs #3769
2013-07-29 11:42:31 +02:00
Matthias Jentsch 94e9ffc7b3 Fix comments
refs #3769
2013-07-26 15:57:37 +02:00
Jannis Moßhammer 306a51271b Change 'user' table to 'account', error handling and docs
Fix installation instructions for postgresql, the user table is now
'account', as user is a keyword in some rdbms, now catching exceptions
and returning auth failed while logging errors

refs #3769
2013-07-26 15:01:52 +02:00
Matthias Jentsch fd4cbf1c5b Add default login to the authentication database
refs #3772
2013-07-26 13:10:00 +02:00
Matthias Jentsch b013966464 Fix unit tests and add documentation
Add functionality to check if a certain database type like psql or mysql is
available and skip the tests accordingly.

Add documentation for backend authentication.

refs #3769
2013-07-26 13:09:59 +02:00
Matthias Jentsch 2807982f72 Remove crypto-module and use libraries instead
Remove the crypto-module to reduce amount of dependencies and use hash_hmac
with SHA256 instead.

refs #3769
2013-07-26 13:09:59 +02:00
Matthias Jentsch 3ff0c0f02a Adds DbUserBackend to handle the authentication against a sql db.
Users should be able to authenticate against an internal DB without setting up
additional authentication domains.

refs #3769
2013-07-26 13:09:59 +02:00
Jannis Mosshammer e8204f4755 Merge branch 'feature/service-detail-view-4181' of ssh://git.icinga.org/icinga2-web
Conflicts:
	library/Icinga/Application/Logger.php
	library/Icinga/Application/Web.php
	library/Icinga/Authentication/Backend/LdapUserBackend.php
	library/Icinga/Authentication/Credentials.php
	library/Icinga/Authentication/Manager.php
	library/Icinga/Authentication/PhpSession.php
	library/Icinga/Authentication/Session.php
	library/Icinga/Authentication/User.php
	library/Icinga/Authentication/UserBackend.php
	library/Icinga/Backend/AbstractBackend.php
	library/Icinga/Backend/DataView/ObjectRemappingView.php
	library/Icinga/Backend/Query.php
	library/Icinga/Backend/Statusdat/DataView/StatusdatHostView.php
	library/Icinga/Backend/Statusdat/HostgroupsummaryQuery.php
	library/Icinga/Backend/Statusdat/HostlistQuery.php
	library/Icinga/Backend/Statusdat/ServicegroupsummaryQuery.php
	library/Icinga/Backend/Statusdat/ServicelistQuery.php
	library/Icinga/Exception/ConfigurationError.php
	library/Icinga/Exception/MissingParameterException.php
	library/Icinga/Exception/NotImplementedError.php
	library/Icinga/Exception/ProgrammingError.php
	library/Icinga/Exception/SystemPermissionException.php
	library/Icinga/Protocol/AbstractQuery.php
	library/Icinga/Protocol/Commandpipe/Acknowledgement.php
	library/Icinga/Protocol/Commandpipe/CommandPipe.php
	library/Icinga/Protocol/Commandpipe/Comment.php
	library/Icinga/Protocol/Commandpipe/Downtime.php
	library/Icinga/Protocol/Commandpipe/Exception/InvalidCommandException.php
	library/Icinga/Protocol/Commandpipe/IComment.php
	library/Icinga/Protocol/Commandpipe/PropertyModifier.php
	library/Icinga/Protocol/Ldap/Connection.php
	library/Icinga/Protocol/Ldap/Exception.php
	library/Icinga/Protocol/Ldap/LdapUtils.php
	library/Icinga/Protocol/Ldap/Node.php
	library/Icinga/Protocol/Ldap/Query.php
	library/Icinga/Protocol/Ldap/Root.php
	library/Icinga/Protocol/Statusdat/Exception/ParsingException.php
	library/Icinga/Protocol/Statusdat/IReader.php
	library/Icinga/Protocol/Statusdat/ObjectContainer.php
	library/Icinga/Protocol/Statusdat/Parser.php
	library/Icinga/Protocol/Statusdat/Query.php
	library/Icinga/Protocol/Statusdat/Query/Expression.php
	library/Icinga/Protocol/Statusdat/Query/Group.php
	library/Icinga/Protocol/Statusdat/Query/IQueryPart.php
	library/Icinga/Protocol/Statusdat/Reader.php
	library/Icinga/Protocol/Statusdat/RuntimeStateContainer.php
	library/Icinga/Protocol/Statusdat/View/AccessorStrategy.php
	library/Icinga/Web/ActionController.php
	library/Icinga/Web/Form.php
	library/Icinga/Web/Hook/Configuration/ConfigurationTab.php
	library/Icinga/Web/Hook/Configuration/ConfigurationTabBuilder.php
	library/Icinga/Web/Hook/Configuration/ConfigurationTabInterface.php
	library/Icinga/Web/Hook/Grapher.php
	library/Icinga/Web/Hook/Toptray.php
	library/Icinga/Web/ModuleActionController.php
	library/Icinga/Web/Notification.php
	library/Icinga/Web/Paginator/Adapter/QueryAdapter.php
	library/Icinga/Web/Paginator/ScrollingStyle/SlidingWithBorder.php
	library/Icinga/Web/Widget.php
	modules/monitoring/application/views/helpers/MonitoringCommands.php
	modules/monitoring/application/views/helpers/MonitoringFlags.php
	modules/monitoring/application/views/helpers/MonitoringProperties.php
	modules/monitoring/application/views/scripts/show/components/comments.phtml
	modules/monitoring/application/views/scripts/show/components/downtime.phtml
	modules/monitoring/application/views/scripts/show/components/flags.phtml
	modules/monitoring/application/views/scripts/show/components/properties.phtml
	modules/monitoring/application/views/scripts/show/header.phtml
	modules/monitoring/application/views/scripts/show/host.phtml
	modules/monitoring/application/views/scripts/show/service.phtml
	modules/monitoring/library/Monitoring/Backend/AbstractBackend.php
	modules/monitoring/library/Monitoring/Backend/Ido/Query/DowntimeQuery.php
	modules/monitoring/library/Monitoring/Backend/Ido/Query/StatusQuery.php
	modules/monitoring/library/Monitoring/Backend/Statusdat.php
	modules/monitoring/library/Monitoring/Backend/Statusdat/Criteria/Order.php
	modules/monitoring/library/Monitoring/Backend/Statusdat/DataView/StatusdatServiceView.php
	modules/monitoring/library/Monitoring/Backend/Statusdat/Query/GroupsummaryQuery.php
	modules/monitoring/library/Monitoring/Backend/Statusdat/Query/Query.php
	modules/monitoring/library/Monitoring/Command/Meta.php
	modules/monitoring/library/Monitoring/View/DowntimeView.php
	modules/monitoring/test/php/application/views/helpers/MonitoringCommandsTest.php
	modules/monitoring/test/php/application/views/helpers/MonitoringPropertiesTest.php
	modules/monitoring/test/php/library/Command/MetaTest.php
2013-07-23 16:33:07 +02:00
Marius Hein 8d3ff94696 Remove php strict errors
refs #4448
2013-07-23 12:18:27 +02:00
Jannis Moßhammer 07f7e7ef23 Fix interface changes of statusdat in tests
The StatusDat tests didn't run as they were outdated, now a
newer version is added

refs #4178
refs #4179
2013-07-22 13:47:09 +02:00
Jannis Moßhammer dac9b7be4b Fix mixedPagination property typo, Statusloader libraries missing and getter for Abstractquery
refs #4178
2013-07-19 17:48:24 +02:00
Jannis Moßhammer 76a3ef86c1 Fix QueryAdapter and SlidingWithBorderTest, remove --strict
QueryAdapter and SlidingWithBorder used the statusdat backend and
must therefore be modified.
The --strict parameter stores controller tests because of the 1s timeout
and offers now advantages for us at this time.

refs #4417
2013-07-19 11:36:11 +02:00
Jannis Moßhammer 5827cb37cb Fix statusdat tests and implementation
After moving StatusDat to monitoring/Backends and changing the
inheritance to Library/Icinga/Data, a few changes must be reflected in the tests:
- Move tests to monitoring module
- Change $this->backend references in StatusDat Queries to $this->ds
- Added LibraryLoader to ease requiring of libaries (to be discussed)

refs #4417
refs #4179
2013-07-19 11:36:05 +02:00
Marius Hein e049d8f3c4 Autoload: Fix test before rename namespaces
Drop builder test, it is not needed anymore. Skip all notification
tests. Test includes bootstrapping and throw errors with ldap auth.

refs #4407
2013-07-15 11:20:12 +02:00