/** * @return \Nette\Application\UI\Form */ public function create() { $form = $this->formFactory->create(); $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->addSubmit('_submit', 'Sign in')->getControlPrototype()->class[] = 'btn-primary'; $socialButtons = $form->addContainer('socialButtons'); foreach ($this->securityManager->getLoginProviders() as $loginProvider) { $socialButtons->addSubmit(str_replace(' ', '_', $loginProvider), $loginProvider)->setValidationScope(false); } return $form; }
/** * @return \Nette\Application\UI\Form */ public function create() { $form = $this->formFactory->create(); $reg = array(); foreach ($this->registrationRepository->findAll() as $registration) { $reg[$registration->id] = $registration->name; } $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($reg); $form->setCurrentGroup(); $form->addSubmit('_submit', 'Save'); return $form; }
/** * @return \Nette\Application\UI\Form */ public function create() { $form = $this->formFactory->create(); $form->addGroup(); $user = $form->addContainer('user'); $providers = $user->addDynamic('loginProviders', function (Container $container) use($form) { $container->setCurrentGroup($form->addGroup('Login provider')); $container->addSelect('type', 'Type')->setItems($this->securityManager->getLoginProviders(), false); $container->addText('uid', 'UID'); $container->addSubmit('remove', 'Remove')->addRemoveOnClick(); }); $providers->addSubmit('add', 'Add')->addCreateOnClick(); $form->setCurrentGroup(); $form->addSubmit('_submit', 'Save'); return $form; }
/** * @return \Venne\System\Components\AdminGrid\AdminGrid */ protected function createComponentLoginTable() { $_this = $this; $data = array(); foreach ($this->securityManager->getLoginProviders() as $name) { $data[] = array('id' => str_replace(' ', '_', $name), 'name' => $name); } $admin = $this->adminGridFactory->create($this->loginRepository); // columns $table = $admin->getTable(); $table->setModel(new ArraySource($data)); $table->setTranslator($this->translator); $table->addColumnText('name', 'Name')->getCellPrototype()->width = '100%'; /** @var \Venne\Security\User $user */ $user = $this->user->identity; $securityManager = $this->securityManager; $providerFormFactory = $this->providerFormFactory; $connectAction = $table->addActionEvent('connect', 'Connect')->setCustomRender(function ($entity, $element) use($securityManager, $user) { if ($user->hasLoginProvider($entity['name'])) { $element->class[] = 'disabled'; } else { $element->class[] = 'btn-primary'; } return $element; }); $connectAction->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); } }; $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->addForm('provider', 'Provider', $this->providerFormFactory); $table->addActionEvent('disconnect', 'Disconnect')->setCustomRender(function ($entity, $element) use($securityManager, $user) { if (!$user->hasLoginProvider($entity['name'])) { $element->class[] = 'disabled'; } return $element; })->setConfirm(function ($entity) { return array('Really disconnect from \'%s\'?', $entity['name']); }); $table->getAction('disconnect')->onClick[] = function ($button, $name) use($_this) { $_this->handleDisconnect(str_replace('_', ' ', $name)); }; $table->getAction('disconnect')->getElementPrototype()->class[] = 'ajax'; $admin->connectFormWithAction($form, $connectAction); return $admin; }
/** * @return \Nette\Forms\Form */ protected function createComponentForm() { $form = $this->loginFormFactory->create(); foreach ($this->securityManager->getLoginProviders() as $loginProvider) { $form['socialButtons'][str_replace(' ', '_', $loginProvider)]->onClick[] = function () use($loginProvider) { $this->redirect('login!', $loginProvider); }; } $form->onSuccess[] = $this->formSuccess; return $form; }
/** * @return \Nette\Application\UI\Form */ public function createComponentForm() { $userType = $this->securityManager->getUserTypeByClass($this->userType); $this->currentUser = $this->createNewUser(); $userType->getRegistrationFormService()->getFormFactory(); $form = $userType->getRegistrationFormService()->getFormFactory()->create(); foreach ($this->securityManager->getLoginProviders() as $loginProvider) { $submit = $form->addSubmit('_submit_' . str_replace(' ', '_', $loginProvider), $loginProvider); $submit->setValidationScope(false); $submit->onClick[] = function () use($loginProvider) { $this->redirect('load!', array($loginProvider)); }; } $form->onSuccess[] = $this->formSuccess; return $form; }