The User bundle extends the OroUserBundle and provides the developers additional core user functionality.
This bundle introduces another type of data resolver based on current session data, instead of the database.
Example:
<?php
namespace Gov\Bundle\DemoBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class DemoController extends Controller
{
public function demoAction()
{
$data = $this->get('ds.data.data');
$username = $data->resolve('ds.session.user.username');
}
}
A typical use case would be when you wish to pre-populate a form with session data.
Example:
<?php
namespace Gov\Bundle\DemoBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class DemoType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('username', 'text', [
'data' => 'ds.session.user.username',
'resolve' => true
]);
}
}
This bundle introduces a collection of convenient migration extensions to help with loading yml-based data fixtures.
Example:
<?php
namespace Gov\Bundle\DemoBundle\Migrations\Data\ORM;
use Doctrine\Common\DataFixtures\AbstractFixture;
use Ds\Bundle\UserBundle\Migration\Extension\UserExtensionAwareInterface;
use Ds\Bundle\UserBundle\Migration\Extension\UserExtensionAwareTrait;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerAwareTrait;
use Doctrine\Common\Persistence\ObjectManager;
class LoadUserData extends AbstractFixture implements UserExtensionAwareInterface, ContainerAwareInterface
{
use UserExtensionAwareTrait;
use ContainerAwareTrait;
public function load(ObjectManager $manager)
{
// Currently extensions are not automatically injected via the *AwareInterface.
$this->setUserExtension($this->container->get('ds.user.migration.extension.user'));
//
$resource = __DIR__.'/../../../Resources/data/users.yml';
$this->userExtension->import($resource, $manager);
}
}
users:
-
username: john
password: john
email: john@gov.com
roles: [ ROLE_USER ]
first_name: John
last_name: Doe
prototype:
email: ~
roles: []
first_name: ~
last_name: ~
owner: main
business_units: [ main ]
organization: default
organizations: [ default ]
enabled: true