Squiz Matrix  4.12.2
 All Data Structures Namespaces Functions Variables Pages
public_user.inc
1 <?php
18 require_once SQ_CORE_PACKAGE_PATH.'/users/user/user.inc';
19 
20 
32 class Public_User extends User
33 {
34 
35 
42  function __construct($assetid=0)
43  {
44  parent::__construct($assetid);
45 
46  }//end constructor
47 
48 
59  public function create(Array &$link)
60  {
61  require_once SQ_CORE_PACKAGE_PATH.'/system/system_asset_fns.inc';
62  if (!system_asset_fns_create_pre_check($this)) {
63  return FALSE;
64  }
65  $GLOBALS['SQ_SYSTEM']->changeDatabaseConnection('db2');
66  $GLOBALS['SQ_SYSTEM']->doTransaction('BEGIN');
67 
68  parent::setAttrValue('username', '');
69  parent::setAttrValue('first_name', 'Public');
70  parent::setAttrValue('last_name', 'User');
71 
72  if ($linkid = parent::create($link)) {
73  if (!system_asset_fns_create_cleanup($this)) {
74  $linkid = FALSE;
75  }
76  }
77 
78  if ($linkid) {
79  $GLOBALS['SQ_SYSTEM']->doTransaction('COMMIT');
80  } else {
81  $GLOBALS['SQ_SYSTEM']->doTransaction('ROLLBACK');
82  }
83 
84  $GLOBALS['SQ_SYSTEM']->restoreDatabaseConnection();
85  return $linkid;
86 
87  }//end create()
88 
89 
99  public function morph($new_type_code)
100  {
101  // trying to morph an unprivileged public user... why would you bother?
102  trigger_localised_error('CORE0091', E_USER_WARNING, $GLOBALS['SQ_SYSTEM']->am->getTypeInfo($this->type(), 'name'));
103  return FALSE;
104 
105  }//end morph()
106 
107 
114  public function canDelete()
115  {
116  return FALSE;
117 
118  }//end canDelete()
119 
120 
127  public function canClone()
128  {
129  return FALSE;
130 
131  }//end canClone()
132 
133 
141  public function canLogin()
142  {
143  return FALSE;
144 
145  }//end canLogin()
146 
147 
157  public function canSetAsCurrentUser()
158  {
159  return TRUE;
160 
161  }//end canSetAsCurrentUser()
162 
163 
173  public function setAttrValue($name, $value)
174  {
175  if ($name == 'username') {
176  trigger_localised_error('CORE0113', E_USER_WARNING, $GLOBALS['SQ_SYSTEM']->am->getTypeInfo($this->type(), 'name'));
177  return FALSE;
178  }
179 
180  return parent::setAttrValue($name, $value);
181 
182  }//end setAttrValue()
183 
184 
197  protected function _catchBlankUserNamePass($username, $password)
198  {
199  return TRUE;
200 
201  }//end _catchBlankUserNamePass()
202 
203 
215  protected function _catchBlankSetUserName($username)
216  {
217  return TRUE;
218 
219  }//end _catchBlankSetUserName()
220 
221 
222 }//end class
223 ?>