BLUE DRAGON PHP SDK
All Classes Functions Variables Pages
rvp_php_sdk_login.class.php
1 <?php
2 /***************************************************************************************************************************/
24 defined( 'RVP_PHP_SDK_ACCESS' ) or die ( 'Cannot Execute Directly' ); // Makes sure that this file is in the correct context.
25 
26 require_once(dirname(__FILE__).'/a_rvp_php_sdk_security_object.class.php'); // Make sure that we have the base class in place.
27 
28 /****************************************************************************************************************************/
32  /************************************************************************************************************************/
33  /*#################################################### INTERNAL METHODS ################################################*/
34  /************************************************************************************************************************/
35  /***********************/
39  protected function _save_data( $in_args = '',
40  $in_payload = NULL,
41  $in_new_child_ids = NULL
42  ) {
43  $tokens = $this->_object_data->security_tokens;
44 
45  $to_set = [
46  'password' => (isset($this->_object_data->password) ? $this->_object_data->password : NULL),
47  'tokens' => ((isset($tokens) && is_array($tokens)) ? implode(',', $tokens) : NULL)
48  ];
49 
50  $put_args = '';
51 
52  foreach ($to_set as $key => $value) {
53  if (isset($key) && isset($value)) {
54  $put_args .= '&'.$key.'='.urlencode(trim(strval($value)));
55  }
56  }
57 
58  return parent::_save_data($put_args.$in_args);
59  }
60 
61  /***********************/
67  protected function _save_change_record( $in_change_record_object
68  ) {
69  $ret = false;
70  if (isset($in_change_record_object->people->logins) && isset($in_change_record_object->people->logins->changed_logins) && is_array($in_change_record_object->people->logins->changed_logins) && count($in_change_record_object->people->logins->changed_logins)) {
71  foreach ($in_change_record_object->people->logins->changed_logins as $changed_login) {
72  if ($before = $changed_login->before) {
73  $this->_changed_states[] = new RVP_PHP_SDK_Login($this->_sdk_object, $before->id, $before, true);
74  $ret = true;
75  }
76  }
77  }
78 
79  return $ret;
80  }
81 
82  /***********************/
88  protected function _load_data( $in_force = false,
89  $in_details = false,
90  $in_parents = false
91  ) {
92  $ret = parent::_load_data($in_force, $in_details, $in_parents);
93 
94  if ($ret) {
95  if (isset($this->_object_data) && isset($this->_object_data->people) && isset($this->_object_data->people->logins) && is_array($this->_object_data->people->logins) && (1 == count($this->_object_data->people->logins))) {
96  $this->_object_data = $this->_object_data->people->logins[0];
97  } else {
98  $this->_object_data = NULL;
99  $this->_details = false;
100  }
101  }
102 
103  return $ret;
104  }
105 
106  /************************************************************************************************************************/
107  /*#################################################### PUBLIC METHODS ##################################################*/
108  /************************************************************************************************************************/
109 
110  /***********************/
113  function __construct( $in_sdk_object,
114  $in_id,
115  $in_data = NULL,
116  $in_detailed_data = false
117  ) {
118  parent::__construct($in_sdk_object, $in_id, $in_data, $in_detailed_data, 'people/logins');
119  }
120 
121  /***********************/
127  function login_id() {
128  $ret = NULL;
129 
130  $this->_load_data(false, true);
131 
132  if (isset($this->_object_data) && isset($this->_object_data->login_id)) {
133  $ret = $this->_object_data->login_id;
134  }
135 
136  return $ret;
137  }
138 
139  /***********************/
145  function is_logged_in() {
146  $ret = false;
147 
148  $this->_load_data(false, true);
149  if (isset($this->_object_data) && isset($this->_object_data->current_login) && $this->_object_data->current_login) {
150  $ret = true;
151  }
152 
153  return $ret;
154  }
155 
156  /***********************/
162  function is_manager() {
163  $ret = false;
164 
165  if ($this->is_logged_in() && isset($this->_object_data->is_manager) && $this->_object_data->is_manager) {
166  $ret = true;
167  }
168 
169  return $ret;
170  }
171 
172  /***********************/
178  function is_main_admin() {
179  $ret = false;
180 
181  if ($this->is_manager() && isset($this->_object_data->is_main_admin) && $this->_object_data->is_main_admin) {
182  $ret = true;
183  }
184 
185  return $ret;
186  }
187 
188  /***********************/
194  function set_password( $in_new_password
195  ) {
196  $ret = false;
197 
198  $this->_load_data(false, true);
199 
200  if (isset($this->_object_data)) {
201  $this->_object_data->password = trim(strval($in_new_password));
202  $ret = $this->save_data();
203  }
204 
205  return $ret;
206  }
207 
208  /***********************/
214  function user_object_id() {
215  $ret = 0;
216 
217  $this->_load_data(false, true);
218 
219  if (isset($this->_object_data) && isset($this->_object_data->user_object_id)) {
220  $ret = intval($this->_object_data->user_object_id);
221  }
222 
223  return $ret;
224  }
225 
226  /***********************/
232  function user_object() {
233  $ret = 0;
234 
235  $this->_load_data(false, true);
236 
237  if (isset($this->_object_data) && isset($this->_object_data->user_object_id)) {
238  $ret = intval($this->_object_data->user_object_id);
239  $ret = new RVP_PHP_SDK_User($this->_sdk_object, $this->_object_data->user_object_id);
240  }
241 
242  return $ret;
243  }
244 
245  /***********************/
251  function security_tokens() {
252  $ret = [1, $this->id()];
253 
254  $this->_load_data(false, true);
255 
256  if (isset($this->_object_data) && isset($this->_object_data->security_tokens)) {
257  $ret = array_merge($ret, array_map('intval', $this->_object_data->security_tokens));
258  }
259 
260  sort($ret);
261  $ret = array_unique($ret);
262 
263  return $ret;
264  }
265 
266  /***********************/
290  function set_security_tokens( $in_token_array
291  ) {
292  $ret = false;
293 
294  $this->_load_data(false, true);
295 
296  if (isset($this->_object_data) && $this->_sdk_object->is_manager() && ($this->_sdk_object->current_login_id() != $this->id())) {
297  $in_vals = array_map('intval', $in_token_array);
298  $this->_object_data->security_tokens = $in_vals;
299  $ret = $this->save_data();
300  if ($ret) {
301  $ret = $this->_load_data(true, true);
302  } else {
303  $this->_load_data(true, true); // We reload the data in any case, but we don't record the result if the operation failed.
304  }
305  }
306 
307  return $ret;
308  }
309 };
_load_data( $in_force=false, $in_details=false, $in_parents=false)
_save_data( $in_args='', $in_payload=NULL, $in_new_child_ids=NULL)
_save_change_record( $in_change_record_object)
set_security_tokens( $in_token_array)
set_password( $in_new_password)
__construct( $in_sdk_object, $in_id, $in_data=NULL, $in_detailed_data=false)