63 lines
1.6 KiB
PHP
63 lines
1.6 KiB
PHP
<?php
|
||
|
||
namespace Trinity\Bundle\UserBundle\Form\Type;
|
||
|
||
use Propel\PropelBundle\Form\BaseAbstractType;
|
||
use Symfony\Component\Form\FormBuilderInterface;
|
||
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
|
||
use \Trinity\Bundle\UserBundle\Form\EventListener\AddCodeFieldSubscriber;
|
||
|
||
class GroupType extends BaseAbstractType
|
||
{
|
||
/**
|
||
* {@inheritdoc}
|
||
*/
|
||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||
{
|
||
$builder->add('name')
|
||
->add('roles', 'choice',
|
||
array(
|
||
'expanded' => true,
|
||
'multiple' => true,
|
||
'choices' => array_key_exists('roles',$this->getOptions()) ? $this->getOption('roles') : self::getRoles()
|
||
)
|
||
);
|
||
|
||
$builder->addEventSubscriber(new AddCodeFieldSubscriber());
|
||
}
|
||
|
||
/**
|
||
* {@inheritdoc}
|
||
*/
|
||
public function setDefaultOptions(OptionsResolverInterface $resolver)
|
||
{
|
||
$resolver->setDefaults(
|
||
array(
|
||
'data_class' => 'FOS\UserBundle\Propel\Group',
|
||
));
|
||
}
|
||
|
||
/**
|
||
* {@inheritdoc}
|
||
*/
|
||
public function getName()
|
||
{
|
||
return 'group';
|
||
}
|
||
|
||
public static function getRoles()
|
||
{
|
||
return array(
|
||
'ROLE_USER' => 'User',
|
||
'ROLE_WEBMASTER' => 'Webmaster',
|
||
'ROLE_ADMIN' => 'Administrator',
|
||
'ROLE_SUPER_ADMIN' => 'Super administrator'
|
||
);
|
||
}
|
||
|
||
public static function validatorRoles()
|
||
{
|
||
return array_keys(self::getRoles());
|
||
}
|
||
}
|