23 public $mActionForm =
null;
24 public $mObject =
null;
26 public $mSelfDelete =
false;
27 public $mSelfDeleteConfirmMessage =
'';
55 public function prepare(&$controller, &$xoopsUser, $moduleConfig)
57 $this->mSelfDelete = $moduleConfig[
'self_delete'];
58 $this->mSelfDeleteConfirmMessage = $moduleConfig[
'self_delete_confirm'];
61 $this->mActionForm->prepare();
63 $this->_mDoDelete =
new XCube_Delegate(
'bool &',
'Legacy_Controller',
'XoopsUser');
64 $this->_mDoDelete->register(
'User_UserDeleteAction._doDelete');
66 $this->_mDoDelete->add([&$this,
'_doDelete']);
71 if (!$this->mSelfDelete) {
72 $controller->executeForward(XOOPS_URL .
'/');
75 if (is_object($xoopsUser)) {
76 $handler =& xoops_getmodulehandler(
'users',
'user');
77 $this->mObject =& $handler->get($xoopsUser->get(
'uid'));
81 public function isSecure()
86 public function hasPermission(&$controller, &$xoopsUser, $moduleConfig)
88 if (1 == $xoopsUser->get(
'uid')) {
95 public function getDefaultView(&$controller, &$xoopsUser)
97 return USER_FRAME_VIEW_INPUT;
106 public function execute(&$controller, &$xoopsUser)
108 $this->mActionForm->fetch();
109 $this->mActionForm->validate();
111 if ($this->mActionForm->hasError()) {
112 return $this->getDefaultView($controller, $xoopsUser);
116 $this->_mDoDelete->call(
new XCube_Ref($flag), $controller, $xoopsUser);
119 XCube_DelegateUtils::call(
'Legacy.Event.UserDelete',
new XCube_Ref($this->mObject));
121 return USER_FRAME_VIEW_SUCCESS;
124 return USER_FRAME_VIEW_ERROR;
135 public function _doDelete(&$flag, $controller, $xoopsUser)
137 $handler =& xoops_gethandler(
'member');
138 if ($handler->deleteUser($xoopsUser)) {
139 $handler =& xoops_gethandler(
'online');
140 $handler->destroy($this->mObject->get(
'uid'));
141 xoops_notification_deletebyuser($this->mObject->get(
'uid'));
149 public function executeViewInput(&$controller, &$xoopsUser, &$render)
151 $render->setTemplateName(
'user_delete.html');
152 $render->setAttribute(
'object', $this->mObject);
153 $render->setAttribute(
'actionForm', $this->mActionForm);
154 $render->setAttribute(
'self_delete_message', $this->mSelfDeleteConfirmMessage);
157 public function executeViewSuccess(&$controller, &$xoopsUser, &$render)
159 $render->setTemplateName(
'user_delete_success.html');
160 $render->setAttribute(
'object', $this->mObject);
163 public function executeViewError(&$controller, &$xoopsUser, &$render)
165 $controller->executeRedirect(XOOPS_URL .
'/', 3, _MD_USER_ERROR_DBUPDATE_FAILED);