/** * Gegenerate an ajax Token * * @return array */ public static function generate() { $key = \Kanso\Utility\Str::generateRandom(100); $salt = \Kanso\Utility\Str::generateRandom(21); $encryptedKey = self::encrypt($key, $salt); $keys = ['key' => $encryptedKey, 'salt' => $salt]; return $keys; }
/** * Forgot password * * @param string $username * @return boolean */ public function forgotPassword($username) { # Get a new Query Builder $Query = \Kanso\Kanso::getInstance()->Database->Builder(); # Validate the user exists $user = $Query->SELECT('*')->FROM('users')->WHERE('username', '=', $username)->ROW(); if (!$user) { return false; } # generate a token $token = \Kanso\Utility\Str::generateRandom(85, true); $Query->UPDATE('users')->SET(['kanso_password_key' => $token])->WHERE('id', '=', $user['id'])->QUERY(); # Create array of data for email template $website = \Kanso\Kanso::getInstance()->Environment['KANSO_WEBSITE_NAME']; $emailData = ['name' => $user['name'], 'website' => $website, 'key' => $token]; # Get the email template $msg = \Kanso\Templates\Templater::getTemplate($emailData, 'EmailForgotPassword'); # Send email return \Kanso\Utility\Mailer::sendHTMLEmail($user['email'], $website, 'no-reply@' . $website, 'A reset password request has been made', $msg); return false; }