Пример #1
0
 public function renderDefault()
 {
     if ($this->user->isLoggedIn()) {
         $this->flashMessage($this->translator->translate('You are already logged in.'), 'info');
     }
     $this->template->loginProviders = $this->securityManager->getLoginProviders();
 }
Пример #2
0
 /**
  * @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);
     }
 }
Пример #3
0
 /**
  * @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');
 }
Пример #5
0
 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;
 }
Пример #6
0
 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;
 }
Пример #7
0
 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;
 }