Commit graph

593 commits

Author SHA1 Message Date
Joas Schilling
b616318327
Fix several minor issues 2016-05-25 16:06:08 +02:00
Joas Schilling
db2e9df5f0
Move Job to a better class name 2016-05-25 16:06:06 +02:00
Joas Schilling
c807a26bd8
Move Access to PSR-4 2016-05-25 16:04:59 +02:00
Joas Schilling
02d5b75fb4
Move BackendUtility to PSR-4 2016-05-25 16:04:59 +02:00
Joas Schilling
aa7b600383
Move Configuration to PSR-4 2016-05-25 16:04:59 +02:00
Joas Schilling
af0a6961b1
Move Connection to PSR-4 2016-05-25 16:04:59 +02:00
Joas Schilling
387019a212
Move FilesystemHelper to PSR-4 2016-05-25 16:04:58 +02:00
Joas Schilling
7db6b487f5
Move Helper to PSR-4 2016-05-25 16:04:58 +02:00
Joas Schilling
391531851c
Move interface to PSR-4 2016-05-25 16:04:58 +02:00
Joas Schilling
3690ce1b36
Move LDAP to PSR-4 2016-05-25 16:04:58 +02:00
Joas Schilling
5b3087d375
Move LDAP Utility to PSR-4 2016-05-25 16:04:57 +02:00
Joas Schilling
6feccccbd5
Move LogWrapper to PSR-4 2016-05-25 16:04:57 +02:00
Joas Schilling
e73d811425
Move Proxy to PSR-4 2016-05-25 16:04:57 +02:00
Joas Schilling
d16a97a273
lib/user 2016-05-25 16:04:57 +02:00
Joas Schilling
d4e828f39e
Move wizard 2016-05-25 16:04:57 +02:00
Joas Schilling
3f5e76162d
Move lib\user to PSR-4 2016-05-25 16:04:56 +02:00
Joas Schilling
b7fa527791
Move User_LDAP and User_Proxy to PSR-4 2016-05-25 16:04:56 +02:00
Joas Schilling
cbba55a26c
Move Group_LDAP and Group_Proxy to PSR-4 2016-05-25 16:04:56 +02:00
Joas Schilling
4ac283ecd3
Move Command namespace to PSR-4 2016-05-25 16:04:56 +02:00
Joas Schilling
9d61acb27d
Move User_LDAP to PSR-4 2016-05-25 16:04:55 +02:00
Thomas Müller
6321596134 Merge pull request #24052 from owncloud/fix-ldap-cache-race-conditions
Fix LDAP race conditions
2016-04-25 14:55:20 +02:00
Arthur Schiwon
203b0e9cba
on clone Connection, do not take over the existing LDAP resource
For one, it solves potential conflicts when using the resource. For the
other, one on the login check (the only place where a clone happens
currently) we do not need to rebind after confirming the user's login
was successful.
2016-04-22 21:43:41 +02:00
Morris Jobke
62a59854f0
Fix LDAP race conditions
* getFromCache is wrapped in isCached
* inbetween the two calls the cache entry hits it's TTL
* getFromCache returns null
* this fix only checkes if the returned value is null and
  return only non-null values
2016-04-20 21:50:28 +02:00
C. Montero Luque
5911ce530b Merge pull request #23527 from owncloud/fix-21136
disable Paged Search when chunksize is set to 0, fixes #21136
2016-04-14 11:14:19 -04:00
Stefan Weil
16df1c5188 apps: Fix typos (found by codespell) (#23862)
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-04-12 12:52:51 +02:00
Thomas Müller
f6b846584b Handle case where the user is not known - fixes #23759 2016-04-04 16:56:59 +02:00
Arthur Schiwon
c9587cea76 disable Paged Search when chunksize is set to 0, fixes #21136 2016-03-23 19:47:31 +01:00
Thomas Müller
8442516e10 Merge pull request #23329 from owncloud/fix-21555
Avatar must be saved after login is done and external storages set up…
2016-03-21 09:47:50 +01:00
Arthur Schiwon
d8621c78ed Avatar must be saved after login is done and external storages set up properly, fixes #21555 2016-03-16 20:51:03 +01:00
Arthur Schiwon
8e0bd5630c fix writing to cache when fallback server should be used immediately 2016-03-16 14:44:18 +01:00
Arthur Schiwon
fe2a506e56 remove deprecated ldap_sort 2016-03-10 13:13:38 +01:00
Arthur Schiwon
5d3183afcd improve log output when no LDAP user was found on login attempt 2016-03-05 00:18:34 +01:00
Arthur Schiwon
82b55c4db9 untangle different user manager instances, fixes #22770 2016-03-02 13:02:43 +01:00
Lukas Reschke
c353d51810 Remove Scrutinizer Auto Fixer 2016-03-01 17:48:23 +01:00
Lukas Reschke
933f60e314 Update author information
Probably nice for the people that contributed to 9.0 to see themselves in the AUTHORS file :)
2016-03-01 17:25:15 +01:00
Arthur Schiwon
b9b85e32be take the first result of that array, if present. Fixes 2nd display name to be 'Array', if cache is configured and enabled. 2016-02-24 21:32:03 +01:00
Arthur Schiwon
3a796d1e15 Consolidate getQuota and setQuota methods in User instance 2016-02-09 17:16:43 +01:00
Thomas Müller
69a4cd2898 Merge pull request #22102 from owncloud/ldap_2nddispname-master
[LDAP] add second field for additional/optional display name attribute
2016-02-06 13:27:01 +01:00
Alex Weirig
0d797637f3 code changes for user_ldap Dynamic Group Membership
Added new setting of “Dynamic Group Member URL”
(ldapDynamicGroupMemberURL) - see LDAP settings advanced tab.

Added public function getDynamicGroupMembers.

Updated function _groupMembers.

Updated function getUserGroups.
2016-02-03 21:50:27 +01:00
Arthur Schiwon
c1871f5787 Port of test_ldap_2nddispname to master 2016-02-03 13:55:39 +01:00
Morris Jobke
e4ad4c7e98 [user_ldap] properly decode cached objects
* fixes #21896
2016-01-29 07:51:16 +01:00
Thomas Müller
77069f5582 Use IUser::setEMailAddress in ldap as well 2016-01-20 15:21:33 +01:00
Thomas Müller
aeb89947a2 Introduce IUser::setEMailAddress and add hook mechanism 2016-01-20 14:57:20 +01:00
Thomas Müller
dd733d8925 Merge pull request #20804 from owncloud/fix-ldap-process-user-wo-displayname
LDAP: do not attempt to process user records without display name, fi…
2016-01-20 11:33:26 +01:00
Scrutinizer Auto-Fixer
83a8e75614 Scrutinizer Auto-Fixes
This commit consists of patches automatically generated for this project on https://scrutinizer-ci.com
2016-01-15 12:54:26 +00:00
Thomas Müller
682821c71e Happy new year! 2016-01-12 15:02:18 +01:00
Arthur Schiwon
1ed6132899 LDAP: do not attempt to process user records without display name, fixes fatal error 2016-01-11 11:21:02 +01:00
Ralph Krimmel
26d0f42dac Respect user enumeration
Respect shareapi_allow_share_dialog_user_enumeration in user_ldap filter
generation function to increase search performance in sharing dialog.
2016-01-08 15:32:31 +01:00
Thomas Müller
70b58cf367 Merge pull request #17924 from owncloud/ldap-fix-appending-port
ensure an LDAP URL is used, append the port to the host URL when necessary, and just in one place
2016-01-08 12:34:15 +01:00
Morris Jobke
553a981980 Make LDAP more robust to exceptions and log them properly 2016-01-06 13:46:55 +01:00
Arthur Schiwon
e39415c946 fix find DN by UUID for AD 2015-12-14 22:42:27 +01:00
Arthur Schiwon
4020d5b77a look for DN changes before marking a user as deleted 2015-12-11 01:56:53 +01:00
Thomas Müller
000523a7fe Merge pull request #18212 from ryno83/treat_LDAP_users_not_available_by_user_filter_as_deleted
treat LDAP users not available by user filter as deleted
2015-12-07 17:47:10 +01:00
Arthur Schiwon
86fcb08745 wizard should also detect protocol errors, as side effect enforces LDAPv3 2015-12-05 00:43:38 +01:00
Arthur Schiwon
a32b002cff always use an LDAP URL when connecting to LDAP 2015-12-05 00:09:15 +01:00
Morris Jobke
c60c793cf2 More cleanups of OC_Config usage 2015-12-03 16:41:23 +01:00
Thomas Müller
4978a785fa Merge pull request #18294 from esakol/issue17173
Fix RHDS ldap paged search, Issue #17173
2015-11-24 16:04:23 +01:00
Mario Kolling
46a8eab772 Fix RHDS ldap paged search, Issue #17173
Change-Id: Ic804ea95401a9b49cb2b0866af722aa0d3ee58c5
2015-11-09 10:27:45 -02:00
Arthur Schiwon
133e3fe89d remove uselessly used parameter, read all user attributes also when looking up users in groups 2015-11-06 15:21:56 +01:00
Thomas Müller
bf941032a3 Merge pull request #20271 from owncloud/fix-18701
LDAP: attempt to connect to backup server again, if main server is no…
2015-11-06 10:01:06 +01:00
Arthur Schiwon
8eeaf11d41 add port to host only, if an URL is used instead of a plain hostname 2015-11-04 12:34:30 +01:00
Arthur Schiwon
6b866fa917 LDAP: attempt to connect to backup server again, if main server is not available. Fixes #18701 2015-11-03 17:17:00 +01:00
blizzz
83d3c94590 Merge branch 'master' into fix-20151 2015-11-02 13:32:24 +01:00
Arthur Schiwon
a2f2ffb8db if a user that is flag as deleted shows up again, remove that flag. Fixes #20090 2015-10-30 19:20:42 +01:00
Arthur Schiwon
16aa339475 add method to count users by loginname and use it for diagnose test, fixes #20151 2015-10-30 18:20:50 +01:00
Arthur Schiwon
f96e552164 fix attribute casing to ensure array keys work 2015-10-27 19:10:38 +01:00
Arthur Schiwon
e1d61284f8 fix update quota with known value 2015-10-27 18:07:40 +01:00
Lukas Reschke
8f09d5b67c Update license headers 2015-10-26 14:04:01 +01:00
Thomas Müller
f50f78dd9b Merge pull request #19795 from owncloud/fix-language-level-compat
Remove arbitrary expression in empty
2015-10-15 16:42:32 +02:00
Joas Schilling
24420e9eb1 Fix doc blocks of LDAP classes 2015-10-15 08:29:35 +02:00
Lukas Reschke
4e5eb3b828 Remove arbitrary expression in empty
Those are only allowed in PHP 5.5, thus making our code incompatible with PHP 5.4

Fixes https://github.com/owncloud/core/issues/19793
2015-10-14 22:35:46 +02:00
Thomas Müller
3f083353c1 Merge pull request #19635 from owncloud/fix-ldap-value-limitation
allow an attribute to return more than one value
2015-10-13 14:09:52 +02:00
Arthur Schiwon
e3a148584a adjust fetchList with a single requested attribute accordingly 2015-10-09 20:07:35 +02:00
Arthur Schiwon
a876efda50 treat dn as any other attribute when building the search() return array 2015-10-08 21:18:34 +02:00
Arthur Schiwon
dd2e887a8d adjust handling changed return array structure from search() and fetchList() 2015-10-08 20:32:15 +02:00
Arthur Schiwon
4a5cecd6fa allow an attribute to return more than one value 2015-10-07 18:57:49 +02:00
Thomas Müller
c8021441d0 Merge pull request #19489 from owncloud/fix-18297
fix possible infinite loop when reading groups in the wizard
2015-10-07 14:55:48 +02:00
Thomas Müller
0385a62363 Merge pull request #19597 from owncloud/update-license-headers
update licence headers via script
2015-10-06 11:18:35 +02:00
Morris Jobke
b945d71384 update licence headers via script 2015-10-05 21:15:52 +02:00
Arthur Schiwon
353a8e442f fix possible infinite loop when reading groups in the wizard 2015-10-05 19:10:30 +02:00
Arthur Schiwon
fc273ac88c trim by default, add unit tests 2015-10-05 13:42:20 +02:00
Lennart Rosam
70ffa2f9f8 Spaces -> Tabs, Update PHP-Doc and function logic 2015-10-05 13:42:20 +02:00
Lennart Rosam
b47d15cd20 Remove whitespace from base-DNs 2015-10-05 13:42:20 +02:00
Arthur Schiwon
6d06d1c5a4 LDAP Wizard: do not be picky about credentials when only looking for the port 2015-10-03 00:35:24 +02:00
Arthur Schiwon
0dde79b75b memberOf resembles a DN as well and is actively used 2015-09-28 18:40:01 +02:00
Arthur Schiwon
002b6bf059 do not throw exception when no attribute is specified 2015-09-23 17:27:40 +02:00
Arthur Schiwon
9d03b7c6b7 read all relevant user attributes on login and user search, in one query. saves us some. 2015-09-23 16:38:39 +02:00
Lukas Reschke
36e26c6f09 Use "json_encode" and "json_decode" instead of unserialize 2015-09-02 12:26:37 +02:00
blizzz
642ec8e3ba Merge pull request #18244 from owncloud/fix-issue-17677
Fix 17677 - Remove LDAP case sensitive checkbox
2015-08-24 13:45:15 +02:00
Thomas Müller
d9172a1907 Merge pull request #14401 from owncloud/ux-s2s-ldap
allow login names to be used for s2s with LDAP users
2015-08-19 08:31:27 +02:00
Lennart Rosam
b91186c503 Fix 17677 2015-08-12 22:18:28 +02:00
Renaud Fortier
3c53a0da27 if define, check the userfilter if the user is still allowed 2015-08-11 11:55:38 -04:00
blizzz
332492548f Merge pull request #17923 from owncloud/fix-17921
Remove Log info when no group filter is set, fixes #17921
2015-07-29 16:12:08 +02:00
blizzz
e0d5eb8989 remove unused var 2015-07-29 12:10:33 +02:00
blizzz
81f5672393 Remove Log info when no group filter is set, fixes #17921
The log message is superfluous and too noisy. If an admin decides not to use groups, he does not need to be reminded about it on almost every request.
2015-07-28 11:41:21 +02:00
Arthur Schiwon
b37d62d9d3 fix uncaught exception on not permitted file types when setting avatar, fixes #17232 2015-07-27 17:27:00 +02:00
Morris Jobke
933f087d21 Merge pull request #17526 from owncloud/fix-17516
LDAP: when checking group for matching filter, also take base DN into…
2015-07-27 08:38:45 +02:00
Arthur Schiwon
4f910221c4 fix runtime caching in ldap's user manager, fixes #17631 2015-07-17 18:57:56 +02:00
blizzz
bfb90d10ed Merge pull request #17046 from nicolas-grekas/fix-16654
Do not use OC*::mb_*_replace(), they are useless
2015-07-16 11:35:25 +02:00
Nicolas Grekas
472d48f6e3 Do not use OC*::mb_*_replace(), they are useless 2015-07-16 11:00:04 +02:00
Arthur Schiwon
bfdf39b9bd LDAP: when checking group for matching filter, also take base DN into consideration. Fixes #17516 2015-07-09 12:19:04 +02:00
Thomas Müller
0a23d566ba Merge pull request #17255 from owncloud/fix-17119
[LDAP] Filter user groups obtained by memberof
2015-07-01 00:33:39 +02:00
Arthur Schiwon
8625a8cf23 ensure groups match filter when using memberOf to read users group, refs #17119 2015-06-26 16:42:11 +02:00
Morris Jobke
f63915d0c8 update license headers and authors 2015-06-25 14:13:49 +02:00
Thomas Müller
4747c7f509 Merge pull request #16736 from owncloud/utilize-member-of
Utilize memberOf to boost loading time on users page (depending on LDAP server config)
2015-06-10 08:47:53 +02:00
Arthur Schiwon
6f69fab384 port detection needs to take care of now thrown exceptions when LDAP server is not available 2015-06-04 16:28:48 +02:00
Arthur Schiwon
090478a95e if possible, getUserGroups should get memberships using memberOf virtual attribute 2015-06-03 17:38:27 +02:00
Arthur Schiwon
91841bb25d Implement a faster way for checking availability of memberOf. Users tab in the wizard benefits. 2015-06-03 15:23:37 +02:00
Morris Jobke
cf2c599218 Merge pull request #16200 from owncloud/kill-globalfilecache
Drop file caching
2015-06-02 09:11:33 +02:00
Arthur Schiwon
cdb0689334 handle unallowed auth exception on port detection 2015-05-18 18:14:05 +02:00
Arthur Schiwon
5a56393657 throw exception on LDAP error 1, which we usually do not see and is pretty generic. AD uses is for uses not enlisted in the RFC, like on issues with anonymous binds. we also try to guess this case and show a hint. 2015-05-18 18:14:05 +02:00
Arthur Schiwon
b9e5309757 catch unallowed anonymous auth attempt and show specific error 2015-05-18 18:14:05 +02:00
Thomas Müller
8e61ad0872 Merge pull request #15811 from owncloud/exception-on-lost-ldap-connection
throw exception when LDAP Connection was lost
2015-05-15 17:32:07 +02:00
Arthur Schiwon
90611e6594 only use memcache, if available 2015-05-08 13:27:27 +02:00
Arthur Schiwon
57e8b76f48 drop global file cache support, fixes #15621 2015-05-07 14:52:44 +02:00
Arthur Schiwon
0e7fd82e89 cleanup 2015-05-05 14:21:12 +02:00
Arthur Schiwon
b96b0063f6 throw exception when LDAP Connection was lost 2015-04-22 15:39:28 +02:00
Arthur Schiwon
66bc8145a9 allow login names to be used for s2s with LDAP users 2015-04-13 11:50:09 +02:00
Jörn Friedrich Dreyer
fafecd1c05 fix cherrypicking 2015-04-10 11:08:24 +02:00
Morris Jobke
1427ea78d4 fix typo and comment 2015-04-10 09:12:37 +02:00
Morris Jobke
5626a02d69 throw exception if setup is incomplete 2015-04-10 09:12:37 +02:00
Jörn Friedrich Dreyer
077ab27281 fix_tests
Conflicts:
	apps/user_ldap/tests/user_ldap.php
2015-04-10 09:12:37 +02:00
Jörn Friedrich Dreyer
488405d1ec do not hide exception when ldap server has a hiccup 2015-04-10 09:12:37 +02:00
Arthur Schiwon
60bf934e6f change default value of ldap_tls to 0. It will be detected anyway, but starting with 0 will lead to errors and unconfigurability 2015-04-09 21:05:20 +02:00
Arthur Schiwon
b4c96e6ba0 cleanup 2015-04-09 14:01:39 +02:00
Arthur Schiwon
5355c285fc LDAP Wizard Overhaul
wizard refactor

reimplement save spinners and cursor

implement Port detector

introduced detector queue, added base dn detector

disable input fields when detectors are running

introduce spinners for fields that are being updated by detector

cache jq element objects

consolidate processing of detector results in generic / abstract base class

display notification if a detector discovered a problem

don't run base dn detector if a base is configured

reset detector queue on configuration switch

implement functionality check and update of status indicator

document ConfigModel

jsdoc for controller and main view

more documentation

implement the user filter tab view

so far the multiselects get initialized (not filled yet) and the mode can be switched.

mode is also restored.

reintroduce filter switch confirmation in admin XP mode

new detector for user object classes. so we also load user object classes if necessary and are able to save and show the setting.

multiselect trigger save actions now on close only

show spinners automatically, when a detector is running

20k limit for object classes preselection test

adjust wordings, fix grammar

add group (for users tab) detector

also includes wording fixes

error presentation moved from detectors to view, where it belongs

add info label to users page

missing wording changes

show effective LDAP filter in Assisted Mode

add user filter detector

implement count button for users and limit all count actions to 1001 for performance reasons

make port field a bit bigger. not perfect though.

do not detect port automatically

implement login filter tab view

only load features in assisted mode and don't enable assisted fields while in raw mode

add tooltips on login filter checkbox options for better understanding

permanently show filter on login tab

and also compile login filter in assisted mode

test/verify button on login attributes tab, with backend changes.

only run wizard requests if your an active tab. also run compile filter requests when switching to assisted mode

underline toggle filter links to stress that they are clickable

unity user and group tab functionality in common abstract class, add group filter tab view. only detectors and template adjustments left to have group tab implementation complete

add object class and group detector for groups as well as filter composer

show ldap filter permanently on groups tab

introduce input element that can deal better with many groups, will be used with > 40

fix disabling complex group chooser while detection is running

hide complex group chooser on config switch

fix few more issues with complex chooser

make complex group chooser available on Users tab as well

detect base dn improvements/changes:

- do not look for Base DN automatically, offer a button instead
- fix for alternative way to detect a base dn (if agent dn is not given)
- do not trigger filter composers on config switch

Changes with configuration chooser controls

- "New" was removed out of the configuration list
- and split into buttons "add" and "copy"
- delete button is also now an icon

add test button for Base DN

reimplement advanced tab. The save button is gone.

reimplement expert tab

remove unused methods

implement mail attribute detector

implement user display name attribute detection

implement member group association detector

replace text input with textarea for raw filter input

finish functionality check

auto-enable good configurations, as it was before

cleanup

move save confirmation handling to base class, reduces code duplication

enable tabs only if no running save processes are left.

move onConfigLoaded to base class, avoids code duplication

simplify, save LOCs

Test Configuration button to be dealt with in main view as it is a cross-tab element

require detectorQueue in constructor

cleanup

put bootstrap into a function and thus make it testable

get rid of old stuff
2015-04-09 09:47:49 +02:00
Jenkins for ownCloud
b585d87d9d Update license headers 2015-03-26 11:44:36 +01:00
Arthur Schiwon
f28f7754ae support paged results against 389ds. 2015-03-12 22:47:20 +01:00
Arthur Schiwon
42d3ed47e2 set up paged search when limit is 0 2015-03-05 13:15:21 +01:00
Morris Jobke
06aef4e8b1 Revert "Updating license headers"
This reverts commit 6a1a4880f0.
2015-02-26 11:37:37 +01:00
Lukas Reschke
52495dc995 Merge pull request #13740 from owncloud/fix-12190-2
Include primary groups in user and login filter when restricting group access and also fix user counting in primary groups
2015-02-24 16:37:49 +01:00
Jenkins for ownCloud
6a1a4880f0 Updating license headers 2015-02-23 12:13:59 +01:00
Morris Jobke
1bb6de7c1b Merge pull request #13425 from owncloud/phpdoc_cleanup
Cleanup of PHPDoc return types
2015-02-10 01:14:00 +01:00
Morris Jobke
166c4e266f Reduce log level of bind failed to WARN - fixes #11624 2015-02-03 11:44:28 +01:00
Arthur Schiwon
73600cfdd8 and escape the search term 2015-01-29 00:27:05 +01:00
Arthur Schiwon
323af55b50 inlcude AD primary group in user filter, if a group is selected. fixes #12190 2015-01-28 14:12:12 +01:00
Arthur Schiwon
9cb1ef5675 this must be larger then (>), since buggy behaviour occurs when the parameter is a small number 2015-01-20 17:50:53 +01:00
Robin McCorkell
2b99fc76ec Cleanup of PHPDoc return types 2015-01-16 20:30:43 +00:00
Arthur Schiwon
f28235a7ef fix retrieval of user groups 2015-01-12 16:25:11 +01:00
Lukas Reschke
a5099b01f9 Merge pull request #12984 from owncloud/ldap-user-cleanup-master
Ldap user cleanup master
2015-01-09 10:47:02 +01:00
Arthur Schiwon
c1a79d24c5 fix order of initalizing instance properties, and paremeter order in a method call 2015-01-08 17:45:07 +01:00
Arthur Schiwon
c7f273040e fix table name for getList 2015-01-08 14:21:40 +01:00
Arthur Schiwon
9668405ec7 doc fixes and removal of unnecessary use statements 2015-01-07 13:28:56 +01:00
Arthur Schiwon
b9235e2a24 inject DB Connection to user manager 2015-01-07 00:52:18 +01:00
Arthur Schiwon
40ecd30fba inject oc config to User_LDAP 2015-01-06 23:28:49 +01:00
Arthur Schiwon
e724b78694 smaller fixes: coding style, PHPdoc, typos and few for DI 2015-01-06 17:50:06 +01:00
Lyonel Vincent
f94b300602 Be less verbose when using a paged search
Lower the priority from INFO to DEBUG
2014-12-24 16:35:36 +01:00
Lyonel Vincent
5a00b33a90 Be less verbose when disabling SSL cert validation
change log level from WARN to DEBUG
2014-12-24 16:32:27 +01:00
Arthur Schiwon
61ed363f82 planned refactorings for OC 8 2014-12-20 18:28:29 +01:00
Arthur Schiwon
3ca70d647a move from \OC\Preferences to \OCP\IConfig 2014-12-20 16:33:37 +01:00