function execute() { $context = $this->getContext(); $controller = $context->getController(); $request = $context->getRequest(); $user = $context->getUser(); $acs_user_info_row = $user->getAttribute('acs_user_info_row'); $form = $request->ACSGetParameters(); // パスワードを変更する if ($form['passwd'] != '' && $form['passwd'] == $form['passwd2']) { ACSSystem::update_passwd($acs_user_info_row['user_id'], $form['passwd']); } $user_list_url = $this->getControllerPath('User', 'Index'); header("Location: {$user_list_url}"); }
/** * ユーザ情報を更新する(管理者) * name,password,mail_addr のみ更新対象となる * @param $form 変更情報 * @return true(成功) / false(失敗) */ static function update_user_info($form) { // コンテンツ種別マスタ $contents_type_master_array = ACSDB::get_master_array('contents_type'); // コンテンツ種別コード $user_name_contents_type_code = array_search(ACSMsg::get_mst('contents_type_master', 'D01'), $contents_type_master_array); $mail_addr_contents_type_code = array_search(ACSMsg::get_mst('contents_type_master', 'D02'), $contents_type_master_array); $org_form = $form; ACSLib::escape_sql_array($form); ACSLib::get_sql_value_array($form); // BEGIN ACSDB::_do_query("BEGIN"); // ユーザIDが変更された場合 if ($form['old_user_id'] != $form['user_id']) { // (0) ユーザID $sql = "UPDATE user_info"; $sql .= " SET user_id = {$form['user_id']}"; $sql .= " WHERE user_community_id = {$form['user_community_id']}"; $ret = ACSDB::_do_query($sql); if (!$ret) { ACSDB::_do_query("ROLLBACK"); return $ret; } // パスワードユーザの場合 if (ACSSystem::is_htpasswd_user($org_form['old_user_id'])) { $ret = ACSSystem::update_passwd_with_userid($org_form['user_id'], $org_form['old_user_id']); if (!$ret) { ACSDB::_do_query("ROLLBACK"); return $ret; } } } // (1) 氏名 $sql = "UPDATE contents"; $sql .= " SET contents_value = {$form['user_name']}"; $sql .= " WHERE community_id = {$form['user_community_id']}"; $sql .= " AND contents_type_code = '{$user_name_contents_type_code}'"; $ret = ACSDB::_do_query($sql); if (!$ret) { ACSDB::_do_query("ROLLBACK"); return $ret; } // (2) メールアドレス $sql = "UPDATE contents"; $sql .= " SET contents_value = {$form['mail_addr']}"; $sql .= " WHERE community_id = {$form['user_community_id']}"; $sql .= " AND contents_type_code = '{$mail_addr_contents_type_code}'"; $ret = ACSDB::_do_query($sql); if (!$ret) { ACSDB::_do_query("ROLLBACK"); return $ret; } // COMMIT ACSDB::_do_query("COMMIT"); // (3) パスワードファイル if ($org_form['passwd_change'] == 'change_on') { $ret = ACSSystem::update_passwd($org_form['user_id'], $org_form['passwd']); } return $ret; }