* added doctrine listener to calculate duration on each update #31 * added constraints to base objects #31 * new form to create timesheet entries #31 * added unit test for TimesheetVoter #31
178 lines
7.1 KiB
YAML
178 lines
7.1 KiB
YAML
services:
|
|
|
|
# ================================================================================
|
|
# TWIG
|
|
# ================================================================================
|
|
|
|
markdown:
|
|
class: AppBundle\Utils\Markdown
|
|
|
|
app.twig.app_extension:
|
|
public: false
|
|
class: AppBundle\Twig\Extensions
|
|
arguments: ['@markdown', '%app_locales%']
|
|
tags:
|
|
- { name: twig.extension }
|
|
|
|
# twig function: template_from_string()
|
|
app.twig.loader_extension:
|
|
class: Twig_Extension_StringLoader
|
|
tags:
|
|
- { name: 'twig.extension' }
|
|
|
|
app.twig.intl_extension:
|
|
public: false
|
|
class: Twig_Extensions_Extension_Intl
|
|
tags:
|
|
- { name: twig.extension }
|
|
|
|
# ================================================================================
|
|
# SECURITY
|
|
# ================================================================================
|
|
|
|
# security voter to check user-profile access
|
|
app.voter.user:
|
|
class: AppBundle\Voter\UserVoter
|
|
arguments: ["@security.access.decision_manager"]
|
|
tags:
|
|
- { name: security.voter }
|
|
|
|
# security voter to check customer access
|
|
timesheet.voter.customer:
|
|
class: TimesheetBundle\Voter\CustomerVoter
|
|
arguments: ["@security.access.decision_manager"]
|
|
tags:
|
|
- { name: security.voter }
|
|
|
|
# security voter to check project access
|
|
timesheet.voter.project:
|
|
class: TimesheetBundle\Voter\ProjectVoter
|
|
arguments: ["@security.access.decision_manager"]
|
|
tags:
|
|
- { name: security.voter }
|
|
|
|
# security voter to check activity access
|
|
timesheet.voter.activity:
|
|
class: TimesheetBundle\Voter\ActivityVoter
|
|
arguments: ["@security.access.decision_manager"]
|
|
tags:
|
|
- { name: security.voter }
|
|
|
|
# security voter to check activity access
|
|
timesheet.voter.timesheet:
|
|
class: TimesheetBundle\Voter\TimesheetVoter
|
|
arguments: ["@security.access.decision_manager"]
|
|
tags:
|
|
- { name: security.voter }
|
|
|
|
# ================================================================================
|
|
# FORMS
|
|
# ================================================================================
|
|
|
|
# form to edit user roles
|
|
app.admin.user_profile_roles:
|
|
class: AppBundle\Form\UserRolesType
|
|
arguments: ["%security.role_hierarchy.roles%"]
|
|
tags:
|
|
- { name: form.type }
|
|
|
|
# event-listener to populate the navigation
|
|
app.menu_builder:
|
|
class: AppBundle\EventListener\MenuBuilder
|
|
arguments: ["@event_dispatcher", "@security.authorization_checker"]
|
|
tags:
|
|
- { name: kernel.event_listener, event: theme.sidebar_setup_menu, method: onSetupNavbar }
|
|
|
|
# ================================================================================
|
|
# DATABASE
|
|
# ================================================================================
|
|
|
|
# service that prefixes every database table
|
|
app.tableprefix_subscriber:
|
|
class: AppBundle\Doctrine\TablePrefixSubscriber
|
|
arguments: ["%database_prefix%"]
|
|
tags:
|
|
- { name: doctrine.event_subscriber }
|
|
|
|
app.database_listener.timesheet:
|
|
class: TimesheetBundle\EventListener\TimesheetListener
|
|
tags:
|
|
- { name: doctrine.event_listener, event: prePersist, lazy: true }
|
|
- { name: doctrine.event_listener, event: preUpdate, lazy: true }
|
|
|
|
# Uncomment the following lines to define a service for the Post Doctrine repository.
|
|
# It's not mandatory to create these services, but if you use repositories a lot,
|
|
# these services simplify your code:
|
|
#
|
|
# app.post_repository:
|
|
# class: Doctrine\ORM\EntityRepository
|
|
# factory: ['@doctrine.orm.entity_manager', getRepository]
|
|
# arguments: [AppBundle\Entity\User]
|
|
#
|
|
# // traditional code inside a controller
|
|
# $entityManager = $this->getDoctrine()->getManager();
|
|
# $posts = $entityManager->getRepository('AppBundle:User')->findAll();
|
|
#
|
|
# // same code using repository services
|
|
# $posts = $this->get('app.user_repository')->findAll();
|
|
|
|
# ================================================================================
|
|
# THEME
|
|
# ================================================================================
|
|
|
|
avanzu_admin_theme.navbar_user_listener:
|
|
class: AppBundle\EventListener\NavbarShowUserListener
|
|
arguments: ["@security.token_storage"]
|
|
tags:
|
|
- { name: kernel.event_listener, event: theme.navbar_user, method: onShowUser }
|
|
- { name: kernel.event_listener, event: theme.sidebar_user, method: onShowUser }
|
|
|
|
# avanzu_admin_theme.navbar_task_listener:
|
|
# class: "%avanzu_admin_theme.navbar_task_listener.class%"
|
|
# tags:
|
|
# - { name: kernel.event_listener, event: theme.tasks, method: onListTasks }
|
|
#
|
|
# avanzu_admin_theme.navbar_notify_listener:
|
|
# class: "%avanzu_admin_theme.navbar_notify_listener.class%"
|
|
# tags:
|
|
# - { name: kernel.event_listener, event: theme.notifications, method: onListNotifications }
|
|
#
|
|
# avanzu_admin_theme.navbar_msg_listener:
|
|
# class: "%avanzu_admin_theme.navbar_msg_listener.class%"
|
|
# tags:
|
|
# - { name: kernel.event_listener, event: theme.messages, method: onListMessages }
|
|
#
|
|
# avanzu_admin_theme.setup_menu_listener:
|
|
# class: "%avanzu_admin_theme.setup_menu_listener.class%"
|
|
# tags:
|
|
# - { name: kernel.event_listener, event: theme.sidebar_setup_menu, method: onSetupMenu }
|
|
# - { name: kernel.event_listener, event: theme.breadcrumb, method: onSetupMenu }
|
|
|
|
# ================================================================================
|
|
# APPLICATION CORE
|
|
# ================================================================================
|
|
|
|
# a route listener, that injects the locale through a URL directory
|
|
app.redirect_to_preferred_locale_listener:
|
|
class: AppBundle\EventListener\RedirectToPreferredLocaleListener
|
|
arguments: ['@router', '%app_locales%', '%locale%']
|
|
tags:
|
|
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
|
|
|
|
# additional menu entries for the timesheet bundle
|
|
timesheet.configure_menu_listener:
|
|
class: TimesheetBundle\EventListener\Menu
|
|
tags:
|
|
- { name: kernel.event_listener, event: app.main_menu_configure, method: onMainMenuConfigure }
|
|
- { name: kernel.event_listener, event: app.admin_menu_configure, method: onAdminMenuConfigure }
|
|
|
|
# ================================================================================
|
|
# CONSOLE COMMANDS
|
|
# ================================================================================
|
|
|
|
app.command.create_user:
|
|
class: AppBundle\Command\CreateUserCommand
|
|
arguments: ["@security.password_encoder", "@doctrine", "@validator"]
|
|
tags:
|
|
- { name: console.command, command: kimai:create-user }
|