Gentics Portal.Node PHP API
 All Classes Namespaces Functions Variables Pages
UserLoginWidget.php
1 <?php
2 /**
3  *
4  */
6 {
7  public $model;
8  /**
9  * @var string forgot password page url
10  */
11  public $recoveryUrl = '';
12 
13  /**
14  * @var array contains list of available auth services
15  */
16  public $services = array();
17 
18  /**
19  * @var array contains list of available auth service types
20  */
21  public $serviceTypes = array();
22 
23  public function init()
24  {
25  parent::init();
26  Yii::app()->clientScript->registerScriptFile(Yii::app()->getModule('user')->getAssetsUrl() . '/js/userLoginServices.js');
27  }
28 
29  /**
30  * Load model and display login form
31  *
32  * @return void
33  */
34  public function run()
35  {
36  if (Yii::app()->user->isGuest) {
37  if (empty(Yii::app()->eauth->services)) {
38  return;
39  }
40  /* loading auth services */
41  $this->_loadServices();
42 
43  /* loading auth service types */
44  $this->_loadServiceTypes();
45 
46  $this->model or $this->model = new UserLogin();
47  if (($userLoginData = Yii::app()->user->getState('UserLogin')) != null) {
48  $this->model->attributes = $userLoginData['attributes'];
49  foreach ($userLoginData['errors'] as $attribute => $errors) {
50  foreach ($errors as $e) {
51  $this->model->addError($attribute, $e);
52  }
53  }
54  Yii::app()->user->setState('UserLogin', null);
55  }
56 
57  /* if param recoveryUrl is not given - load recoveryUrl from config */
58  if ($this->recoveryUrl == '') {
59  $this->recoveryUrl = Yii::app()->getModule('user')->recoveryUrl;
60  }
61 
62  $this->render('UserLoginWidget', array('model' => $this->model));
63  } else {
64  Yii::app()->user->setFlash(Yii::app()->getModule('user')->userLoginWidgetFlashSuccess, UserModule::t("You're logged in successfully"));
65  $this->render('UserLoggedInWidget');
66  }
67  }
68 
69  public function isUseStandard()
70  {
71  return array_key_exists('standard', Yii::app()->eauth->services);
72  }
73 
74  /**
75  * Load available auth services
76  *
77  * @return void
78  */
79  private function _loadServices()
80  {
81  $services = Yii::app()->eauth->services;
82 
83  foreach ($services as $service=>$settings) {
84  if (isset($settings['enabled']) && $settings['enabled']==false) {
85  continue;
86  }
87  $this->services[$service] = UserModule::t(isset($settings['title']) ? $settings['title'] : $service);
88  }
89  }
90 
91  /**
92  * Load available auth services types
93  *
94  * @return void
95  */
96  private function _loadServiceTypes()
97  {
98  $services = Yii::app()->eauth->getServices();
99 
100  foreach ($services as $service=>$data) {
101  $this->serviceTypes[$service] = $data->type;
102  }
103  $this->serviceTypes['standard'] = 'standard';
104  }
105 }
106 ?>