function resetPassword($blogid, $loginid) { $ctx = Model_Context::getInstance(); if (!isLoginId($blogid, $loginid)) { return false; } $userid = User::getUserIdByEmail($loginid); $query = DBModel::getInstance(); $query->reset("Users"); $query->setQualifier("userid", "eq", $userid); $password = $query->getCell("password"); $authtoken = md5(generatePassword()); $query->reset('UserSettings'); $query->setAttribute('userid', $userid); $query->setAttribute('name', 'Authtoken', true); $query->setAttribute('value', $authtoken, true); $query->setQualifier('userid', $userid); $query->setQualifier('name', 'Authtoken', true); $query->replace(); if (empty($result)) { return false; } //$headers = "From: Your Textcube Blog <textcube@{$service['domain']}>\n" . 'X-Mailer: ' . TEXTCUBE_NAME . "\n" . "MIME-Version: 1.0\nContent-Type: text/html; charset=utf-8\n"; $message = file_get_contents(ROOT . "/resources/style/letter/letter.html"); $message = str_replace('[##_title_##]', _text('텍스트큐브 블로그 로그인 정보'), $message); $message = str_replace('[##_content_##]', _text('블로그 로그인을 위한 임시 암호가 생성 되었습니다. 이 이메일에 로그인할 수 있는 인증 정보가 포함되어 있습니다.'), $message); $message = str_replace('[##_images_##]', $ctx->getProperty('uri.service') . "/resources/style/letter", $message); $message = str_replace('[##_link_##]', $ctx->getProperty('uri.host') . $ctx->getProperty('uri.blog') . "/login?loginid=" . rawurlencode($loginid) . '&password='******'&requestURI=' . rawurlencode($ctx->getProperty('uri.host') . $ctx->getProperty('uri.blog') . "/owner/setting/account?password="******"textcube@" . $ctx->getProperty('service.domain'), '', $loginid, encodeMail(_text('블로그 로그인 암호가 초기화되었습니다.')), $message); if (true !== $ret) { return false; } return true; }
if (!empty($_POST['loginid']) && !empty($_POST['reset'])) { if (resetPassword($blogid, $_POST['loginid'])) { $message = _text('지정된 이메일로 로그인 정보가 전달되었습니다.'); } else { $message = _text('권한이 없습니다.'); } } else { if (!empty($_POST['loginid']) && !empty($_POST['password'])) { if (!empty($_POST['autologin'])) { $isLogin = login($_POST['loginid'], $_POST['password'], Timestamp::getUNIXtime() + $context->getProperty('service.autologinTimeout')); } else { $isLogin = login($_POST['loginid'], $_POST['password'], Timestamp::getUNIXtime() + $context->getProperty('service.timeout')); } if (!$isLogin) { $message = _text('아이디 또는 비밀번호가 틀렸습니다.'); if (!doesHaveMembership() && isLoginId(getBlogId(), $_POST['loginid'])) { $showPasswordReset = true; } } else { if (!doesHaveOwnership()) { $message = _text('서비스의 회원이지만 이 블로그의 구성원이 아닙니다. 주소를 확인해 주시기 바랍니다.'); } } } } } $authResult = fireEvent('LOGIN_try_auth', false); if (doesHaveOwnership() || doesHaveMembership()) { if (doesHaveOwnership() && !empty($_POST['requestURI'])) { $url = parse_url($_POST['requestURI']); if ($url && isset($url['host']) && !String::endsWith('.' . $url['host'], '.' . $context->getProperty('service.domain'))) {