Skip to content

Commit

Permalink
Merge pull request #158 from tompoc/latest_filter_manager_support
Browse files Browse the repository at this point in the history
Making SettingsBundle work with latest FilterManagerBundle
  • Loading branch information
saimaz committed Mar 31, 2016
2 parents b8cd4e7 + 381aad3 commit ae6a8df
Show file tree
Hide file tree
Showing 18 changed files with 101 additions and 139 deletions.
5 changes: 5 additions & 0 deletions Controller/SettingsManagerController.php
Expand Up @@ -98,6 +98,11 @@ public function ngEditAction(Request $request, $name, $profile)
$model = $manager->get($name, $profile, false, $type);

$model->setData($content['setting']['data']);

if (isset($content['setting']['description'])) {
$model->setDescription($content['setting']['description']);
}

$manager->save($model);

return new Response();
Expand Down
6 changes: 5 additions & 1 deletion DependencyInjection/Compiler/ProviderPass.php
Expand Up @@ -11,6 +11,7 @@

namespace ONGR\SettingsBundle\DependencyInjection\Compiler;

use ONGR\SettingsBundle\Settings\General\Provider\ManagerAwareSettingProvider;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition;
Expand Down Expand Up @@ -91,7 +92,10 @@ protected function generateProvider(ContainerBuilder $container, $profile)

$managerName = $this->getElasticManagerFromRepository($container);

$provider = new Definition($container->getParameter('ongr_settings.settings_provider.class'), [$profile]);
$provider = new Definition(
ManagerAwareSettingProvider::CLASS,
[$profile]
);
$provider->addMethodCall('setManager', [new Reference($managerName)]);
$provider->addTag('ongr_settings.settings_provider', ['profile' => $profile]);
$container->setDefinition($id, $provider);
Expand Down
12 changes: 6 additions & 6 deletions DependencyInjection/ONGRSettingsExtension.php
Expand Up @@ -47,15 +47,15 @@ public function load(array $configs, ContainerBuilder $container)
$loader->load('services/personal_settings.yml');
$loader->load('services/general_settings.yml');

$loader->load('filters_container.yml');
$loader->load('filter_container.yml');

if (isset($config['admin_user'])) {
$this->loadPersonalSettings($config['admin_user'], $container);
}

$this->injectPersonalSettings($container);

$this->setFiltersManager($container);
$this->setFilterManager($container);
}

/**
Expand Down Expand Up @@ -86,16 +86,16 @@ protected function loadSettingsProvider($config, ContainerBuilder $containerBuil
*
* @param ContainerBuilder $container
*/
protected function setFiltersManager(ContainerBuilder $container)
protected function setFilterManager(ContainerBuilder $container)
{
$definition = new Definition(
'ONGR\FilterManagerBundle\Search\FiltersManager',
'ONGR\FilterManagerBundle\Search\FilterManager',
[
new Reference('ongr_settings.filters_container'),
new Reference('ongr_settings.filter_container'),
new Reference($container->getParameter('ongr_settings.connection.repository')),
]
);
$container->setDefinition('ongr_settings.filters_manager', $definition);
$container->setDefinition('ongr_settings.filter_manager', $definition);
}

/**
Expand Down
2 changes: 1 addition & 1 deletion Document/Setting.php
Expand Up @@ -212,7 +212,7 @@ public function jsonSerialize()
'profile' => $this->getProfile(),
'type' => $this->getType(),
'data' => $this->getData(),
'id' => $this->getId()
'id' => $this->getId(),
];
}
}
@@ -1,10 +1,8 @@
parameters:
ongr_settings.filter.pager.class: ONGR\FilterManagerBundle\Filters\Widget\Pager\Pager
ongr_settings.filter.pager.request_field: page
ongr_settings.filter.pager.count_per_page: 15
ongr_settings.filter.pager.max_pages: 99

ongr_settings.filter.sort.class: ONGR\FilterManagerBundle\Filters\Widget\Sort\Sort
ongr_settings.filter.sort.request_field: sort
ongr_settings.filter.sort.choices:
nameAsc:
Expand All @@ -18,45 +16,40 @@ parameters:
order: "desc"
default: false

ongr_settings.filter.match_search.class: ONGR\FilterManagerBundle\Filters\Widget\Search\MatchSearch
ongr_settings.filter.match_search.request_field: q
ongr_settings.filter.match_search.field: "name"

ongr_settings.filter.single_term.class: ONGR\FilterManagerBundle\Filters\Widget\Choice\SingleTermChoice
ongr_settings.filter.single_term.profile.request_field: profile
ongr_settings.filter.single_term.profile.field: profile


ongr_settings.filters_container.class: ONGR\FilterManagerBundle\Search\FiltersContainer

services:
ongr_settings.filter.pager:
class: "%ongr_settings.filter.pager.class%"
class: ONGR\FilterManagerBundle\Filter\Widget\Pager\Pager
calls:
- ["setRequestField", ["%ongr_settings.filter.pager.request_field%"]]
- ["setCountPerPage", ["%ongr_settings.filter.pager.count_per_page%"]]
- ["setMaxPages", ["%ongr_settings.filter.pager.max_pages%"]]

ongr_settings.filter.sort:
class: "%ongr_settings.filter.sort.class%"
class: ONGR\FilterManagerBundle\Filter\Widget\Sort\Sort
calls:
- ["setRequestField", ["%ongr_settings.filter.sort.request_field%"]]
- ["setChoices", ["%ongr_settings.filter.sort.choices%"]]

ongr_settings.filter.match_search:
class: "%ongr_settings.filter.match_search.class%"
class: ONGR\FilterManagerBundle\Filter\Widget\Search\MatchSearch
calls:
- ["setRequestField", ["%ongr_settings.filter.match_search.request_field%"]]
- ["setField", ["%ongr_settings.filter.match_search.field%"]]

ongr_settings.filter.single_term.profile:
class: "%ongr_settings.filter.single_term.class%"
class: ONGR\FilterManagerBundle\Filter\Widget\Choice\SingleTermChoice
calls:
- ["setRequestField", ["%ongr_settings.filter.single_term.profile.request_field%"]]
- ["setField", ["%ongr_settings.filter.single_term.profile.field%"]]

ongr_settings.filters_container:
class: "%ongr_settings.filters_container.class%"
ongr_settings.filter_container:
class: ONGR\FilterManagerBundle\Search\FilterContainer
calls:
- ["set", ["pager", "@ongr_settings.filter.pager"]]
- ["set", ["sort", "@ongr_settings.filter.sort"]]
Expand Down
9 changes: 4 additions & 5 deletions Resources/config/services/flash_bag.yml
@@ -1,20 +1,19 @@
parameters:
ongr_settings.flash_bag.flash_bag.class: ONGR\SettingsBundle\FlashBag\DirtyFlashBag
# Flash Bag settings
ongr_settings.flash_bag.cookie.name: ongr_flash_bag
ongr_settings.flash_bag.cookie.injector.class: ONGR\SettingsBundle\EventListener\FlashBagCookieInjectorListener

services:
ongr_settings.flash_bag.flash_bag:
class: %ongr_settings.flash_bag.flash_bag.class%
class: ONGR\SettingsBundle\FlashBag\DirtyFlashBag

ongr_settings.flash_bag.cookie:
class: %ongr_cookie.json.class%
class: ONGR\CookiesBundle\Cookie\Model\JsonCookie
arguments: [ %ongr_settings.flash_bag.cookie.name% ]
tags:
- { name: ongr_cookie.cookie }

ongr_settings.flash_bag.cookie.injector:
class: %ongr_settings.flash_bag.cookie.injector.class%
class: ONGR\SettingsBundle\EventListener\FlashBagCookieInjectorListener
arguments: [ @ongr_settings.flash_bag.flash_bag, @ongr_settings.flash_bag.cookie ]
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest, priority: 96 }
Expand Down
21 changes: 5 additions & 16 deletions Resources/config/services/general_settings.yml
@@ -1,32 +1,21 @@
parameters:
# Settings manager.
ongr_settings.settings_manager.class: ONGR\SettingsBundle\Settings\General\SettingsManager

ongr_settings.settings_container.class: ONGR\SettingsBundle\Settings\General\SettingsContainer
ongr_settings.setting_aware_service_factory.class: ONGR\SettingsBundle\Settings\General\SettingAwareServiceFactory
ongr_settings.listener.cookie_profile.class: ONGR\SettingsBundle\EventListener\ProfileRequestListener
ongr_settings.profiles_manager.class: ONGR\SettingsBundle\Settings\Personal\ProfilesManager

ongr_settings.settings_provider.class: ONGR\SettingsBundle\Settings\General\Provider\ManagerAwareSettingProvider

services:
ongr_settings.settings_manager:
class: %ongr_settings.settings_manager.class%
class: ONGR\SettingsBundle\Settings\General\SettingsManager
arguments:
- @translator
- @event_dispatcher
- @es.manager.settings

ongr_settings.settings_container:
class: %ongr_settings.settings_container.class%
class: ONGR\SettingsBundle\Settings\General\SettingsContainer
arguments:
- @stash
- %ongr_settings.settings_container.profiles%
tags:
- { name: kernel.event_listener, event: ongr_settings.setting_change, method: onSettingChange }

ongr_settings.setting_aware_service_factory:
class: %ongr_settings.setting_aware_service_factory.class%
class: ONGR\SettingsBundle\Settings\General\SettingAwareServiceFactory
arguments:
- @ongr_settings.settings_container
calls:
Expand All @@ -35,7 +24,7 @@ services:
- { name: monolog.logger, channel: admin }

ongr_settings.listener.cookie_profile:
class: %ongr_settings.listener.cookie_profile.class%
class: ONGR\SettingsBundle\EventListener\ProfileRequestListener
calls:
- [ setSettingsContainer, [ @ongr_settings.settings_container ] ]
- [ setPersonalSettingsManager, [ @ongr_settings.settings.personal_settings_manager ] ]
Expand All @@ -44,6 +33,6 @@ services:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }

ongr_settings.profiles_manager:
class: %ongr_settings.profiles_manager.class%
class: ONGR\SettingsBundle\Settings\Personal\ProfilesManager
arguments:
- @es.manager.settings
27 changes: 8 additions & 19 deletions Resources/config/services/personal_settings.yml
@@ -1,38 +1,27 @@
parameters:
# Settings structure service.
ongr_settings.settings.settings_structure.class: ONGR\SettingsBundle\Settings\Personal\SettingsStructure
# Settings structure service settings
ongr_settings.settings.settings: []
ongr_settings.settings.categories: []

# Cookie service.
ongr_settings.settings.settings_cookie_service.class: ONGR\SettingsBundle\Settings\SettingsCookieService
# Cookie service settings
ongr_settings.settings.settings_cookie.name: ongr_settings_user_settings
ongr_settings.settings.settings_cookie.defaults:
expires_interval: P1Y # 1 year.

# Cookie listener.
ongr_settings.settings.settings_cookie_listener.class: ONGR\SettingsBundle\EventListener\SettingsCookieListener

# Personal Settings manager service class.
ongr_settings.settings.personal_settings_manager.class: ONGR\SettingsBundle\Settings\Personal\PersonalSettingsManager

# Personal profiles provider.
ongr_settings.personal_profiles_provider.class: ONGR\SettingsBundle\Settings\Personal\PersonalProfilesProvider

services:
ongr_settings.settings.settings_structure:
class: %ongr_settings.settings.settings_structure.class%
class: ONGR\SettingsBundle\Settings\Personal\SettingsStructure
arguments:
- %ongr_settings.settings.settings%
- %ongr_settings.settings.categories%

ongr_settings.settings.settings_cookie_service:
class: %ongr_settings.settings.settings_cookie_service.class%
class: ONGR\SettingsBundle\Settings\SettingsCookieService
arguments:
- %ongr_settings.settings.settings_cookie.name%

ongr_settings.settings.settings_cookie_listener:
class: %ongr_settings.settings.settings_cookie_listener.class%
class: ONGR\SettingsBundle\EventListener\SettingsCookieListener
calls:
- [ setPersonalSettingsManager, [ @ongr_settings.settings.personal_settings_manager ] ]
- [ setContainer, [ @service_container ] ]
Expand All @@ -41,7 +30,7 @@ services:
scope: request

ongr_settings.settings.settings_cookie:
class: %ongr_cookie.json.class%
class: ONGR\CookiesBundle\Cookie\Model\JsonCookie
arguments: [ %ongr_settings.settings.settings_cookie.name% ]
calls:
- [ setDefaults, [ %ongr_settings.settings.settings_cookie.defaults% ] ]
Expand All @@ -50,14 +39,14 @@ services:

# Personal settings manager class
ongr_settings.settings.personal_settings_manager:
class: %ongr_settings.settings.personal_settings_manager.class%
class: ONGR\SettingsBundle\Settings\Personal\PersonalSettingsManager
arguments:
- @security.context
- @ongr_settings.settings.settings_structure

# Personal profiles provider
ongr_settings.personal_profiles_provider:
class: %ongr_settings.personal_profiles_provider.class%
class: ONGR\SettingsBundle\Settings\Personal\PersonalProfilesProvider
calls:
- [ setProfileManager, [ @ongr_settings.profiles_manager ] ]
- [ setSettingsStructure, [ @ongr_settings.settings.settings_structure ] ]
Expand Down
22 changes: 7 additions & 15 deletions Resources/config/services/sessionless_authentication.yml
@@ -1,49 +1,41 @@
parameters:
# Authentication cookie service.
ongr_settings.authentication.authentication_cookie_service.class: ONGR\SettingsBundle\Security\Authentication\Cookie\SessionlessAuthenticationCookieService
# Authentication cookie service settings
ongr_settings.authentication.authentication_cookie.name: ongr_settings_user_auth
ongr_settings.authentication.authentication_cookie.expiration: P1D # 1 day
ongr_settings.authentication.authentication_cookie.defaults:
expires_interval: %ongr_settings.authentication.authentication_cookie.expiration%

# Authentication provider.
ongr_settings.authentication.sessionless_authentication_provider.class: ONGR\SettingsBundle\Security\Authentication\Provider\SessionlessAuthenticationProvider

# Signature generator.
ongr_settings.authentication.signature_generator.class: ONGR\SettingsBundle\Security\Authentication\Cookie\SessionlessSignatureGenerator
# Signature generator settings
ongr_settings.authentication.secret: Override%Me

# Firewall listener.
ongr_settings.authentication.firewall.listener.class: ONGR\SettingsBundle\Security\Authentication\Firewall\SessionlessAuthenticationListener

services:
ongr_settings.authentication.signature_generator:
class: %ongr_settings.authentication.signature_generator.class%
class: ONGR\SettingsBundle\Security\Authentication\Cookie\SessionlessSignatureGenerator
arguments:
- %ongr_settings.authentication.secret%

ongr_settings.authentication.authentication_cookie_service:
class: %ongr_settings.authentication.authentication_cookie_service.class%
class: ONGR\SettingsBundle\Security\Authentication\Cookie\SessionlessAuthenticationCookieService
arguments:
- @ongr_settings.authentication.signature_generator
- %ongr_settings.authentication.authentication_cookie.expiration%

ongr_settings.authentication.authentication_cookie:
class: %ongr_cookie.json.class%
class: ONGR\CookiesBundle\Cookie\Model\JsonCookie
arguments: [ %ongr_settings.authentication.authentication_cookie.name% ]
calls:
- [ setDefaults, [ %ongr_settings.authentication.authentication_cookie.defaults% ] ]
tags:
- { name: ongr_cookie.cookie }

ongr_settings.authentication.sessionless_authentication_provider:
class: %ongr_settings.authentication.sessionless_authentication_provider.class%
class: ONGR\SettingsBundle\Security\Authentication\Provider\SessionlessAuthenticationProvider
arguments:
- @ongr_settings.authentication.signature_generator
- ""

ongr_settings.authentication.firewall.listener:
class: %ongr_settings.authentication.firewall.listener.class%
class: ONGR\SettingsBundle\Security\Authentication\Firewall\SessionlessAuthenticationListener
arguments:
- @security.authentication.manager
- @ongr_settings.authentication.authentication_cookie_service
Expand Down

0 comments on commit ae6a8df

Please sign in to comment.