public function renderDefault() { if ($this->user->isLoggedIn()) { $this->flashMessage($this->translator->translate('You are already logged in.'), 'info'); } $this->template->loginProviders = $this->securityManager->getLoginProviders(); }
/** * @param Form $form */ public function configure(Form $form) { $form->addText('username', 'E-mail')->setRequired('Please provide a e-mail.'); $form->addPassword('password', 'Password')->setRequired('Please provide a password.'); $form->addCheckbox('remember', 'Remember me on this computer'); $form->addSaveButton('Sign in')->getControlPrototype()->class[] = 'btn-primary'; $socialButtons = $form->addContainer('socialButtons'); foreach ($this->securityManager->getLoginProviders() as $loginProvider) { $socialButtons->addSubmit(str_replace(' ', '_', $loginProvider), $loginProvider)->setValidationScope(FALSE); } }
/** * @param Form $form */ protected function configure(Form $form) { $form->addGroup(); $user = $form->addOne('user'); $user->addMany('loginProviders', function (\Venne\Forms\Container $container) use($form) { $container->setCurrentGroup($form->addGroup($container->data->type)); $container->addSelect('type', 'Type')->setItems($this->securityManager->getLoginProviders(), false); $container->addText('uid', 'UID'); $container->addSubmit('remove', 'Remove')->addRemoveOnClick(); }); $form->setCurrentGroup(); $form->addSaveButton('Save'); }
/** * @param Form $form */ protected function configure(Form $form) { $form->addGroup('Authentication'); $form->addSelect('autologin', 'Auto login')->setItems($this->securityManager->getLoginProviders(), FALSE)->setPrompt('Deactivated')->addCondition($form::EQUAL, '')->elseCondition()->toggle('form-autoregistration'); $form->addGroup()->setOption('id', 'form-autoregistration'); $form->addSelect('autoregistration', 'Auto registration')->setPrompt('Deactivated')->setItems(array_keys($this->registrations), FALSE); $forgotPassword = $form->addContainer('forgotPassword'); $forgotPassword->setCurrentGroup($form->addGroup('Forgot password')); $enabled = $forgotPassword->addCheckbox('enabled', 'Enabled'); $enabled->addCondition($form::EQUAL, TRUE)->toggle('form-reset'); $forgotPassword->setCurrentGroup($form->addGroup()->setOption('id', 'form-reset')); $forgotPassword->addText('emailSubject', 'Subject')->addConditionOn($enabled, $form::EQUAL, TRUE)->addRule($form::FILLED); $forgotPassword->addText('emailSender', 'Sender')->addConditionOn($enabled, $form::EQUAL, TRUE)->addRule($form::FILLED); $forgotPassword->addText('emailFrom', 'From')->addConditionOn($enabled, $form::EQUAL, TRUE)->addRule($form::FILLED)->addRule($form::EMAIL); $forgotPassword->addTextArea('emailText', 'Text')->addConditionOn($enabled, $form::EQUAL, TRUE)->addRule($form::FILLED); $form->setCurrentGroup(); $form->addSaveButton('Save'); }
protected function createComponentForm() { $_this = $this; $form = $this->loginFormFactory->invoke(); foreach ($this->securityManager->getLoginProviders() as $loginProvider) { $form['socialButtons'][str_replace(' ', '_', $loginProvider)]->onClick[] = function () use($_this, $loginProvider) { $_this->redirect('login!', $loginProvider); }; } $form->onSuccess[] = $this->formSuccess; return $form; }
public function createComponentForm() { $_this = $this; $userType = $this->securityManager->getUserTypeByClass($this->userType); $form = $userType->getRegistrationFormFactory()->invoke($this->createNewUser()); foreach ($this->securityManager->getLoginProviders() as $loginProvider) { $form->addSubmit('_submit_' . str_replace(' ', '_', $loginProvider), $loginProvider)->setValidationScope(FALSE)->onClick[] = function () use($_this, $loginProvider) { $_this->redirect('load!', array($loginProvider)); }; } $form->onSuccess[] = $this->formSuccess; return $form; }
protected function createComponentLoginTable() { $_this = $this; $data = array(); foreach ($this->securityManager->getLoginProviders() as $name) { $data[] = array('id' => str_replace(' ', '_', $name), 'name' => $name); } $admin = new AdminGrid($this->loginRepository); // columns $table = $admin->getTable(); $table->setModel(new ArraySource($data)); $table->setTranslator($this->translator); $table->addColumnText('name', 'Name')->getCellPrototype()->width = '100%'; /** @var UserEntity $user */ $user = $this->user->identity; $securityManager = $this->securityManager; $providerFormFactory = $this->providerFormFactory; // actions $table->addAction('connect', 'Connect')->setCustomRender(function ($entity, $element) use($securityManager, $user) { if ($user->hasLoginProvider($entity['name'])) { $element->class[] = 'disabled'; } else { $element->class[] = 'btn-primary'; } return $element; }); $table->getAction('connect')->onClick[] = function ($button, $name) use($_this, $securityManager, $providerFormFactory, $user) { if (!$securityManager->getLoginProviderByName(str_replace('_', ' ', $name))->getFormContainer()) { $_this->redirect('connect!', str_replace('_', ' ', $name)); } else { $_this->provider = str_replace('_', ' ', $name); $providerFormFactory->setProvider($_this->provider); } }; $table->getAction('connect'); $this->providerFormFactory->setUser($user); if ($this->provider) { $this->providerFormFactory->setProvider($this->provider); } $this->providerFormFactory->onSave[] = function (Form $form) use($_this) { $_this->redirect('connect!', array($form['provider']->value, json_encode($form['parameters']->values))); }; $this->providerFormFactory->onSuccess[] = function ($parameters) use($_this) { $_this->redirect('this'); }; $form = $admin->createForm($this->providerFormFactory, 'Provider'); $admin->connectFormWithAction($form, $table->getAction('connect')); $table->addAction('disconnect', 'Disconnect')->setCustomRender(function ($entity, $element) use($securityManager, $user) { if (!$user->hasLoginProvider($entity['name'])) { $element->class[] = 'disabled'; } return $element; })->setConfirm(function ($entity) { return "Really disconnect from '{$entity['name']}'?"; }); $table->getAction('disconnect')->onClick[] = function ($button, $name) use($_this) { $_this->handleDisconnect(str_replace('_', ' ', $name)); }; $table->getAction('disconnect')->getElementPrototype()->class[] = 'ajax'; return $admin; }