mirror of https://gitee.com/bigwinds/arangodb
45 lines
1.4 KiB
JavaScript
45 lines
1.4 KiB
JavaScript
/*global require, applicationContext */
|
|
(function () {
|
|
"use strict";
|
|
|
|
var Foxx = require("org/arangodb/foxx"),
|
|
users = require("org/arangodb/users"),
|
|
controller = new Foxx.Controller(applicationContext),
|
|
url = require("url"),
|
|
token,
|
|
path,
|
|
password;
|
|
|
|
controller.get("/initpwd/:token", function (req, res) {
|
|
token = req.params("token");
|
|
var username = users.userByToken(token);
|
|
path = url.parse(req.url).pathname.split("/");
|
|
path = path.slice(0, path.length - 2).join("/");
|
|
|
|
if (username) {
|
|
res.set("Location", path + "/changePassword.html" + "?n=" +
|
|
encodeURIComponent(username.user) + "&t=" + encodeURIComponent(token));
|
|
} else {
|
|
res.set("Location", path + "/invalid.html");
|
|
}
|
|
|
|
res.status(303);
|
|
});
|
|
|
|
controller.post("/checkpwd", function (req, res) {
|
|
var params = req.rawBody().split("&");
|
|
password = params[0].split("=")[1];
|
|
token = params[2].split("=")[1];
|
|
path = url.parse(req.url).pathname.split("/");
|
|
path = path.slice(0, path.length - 1).join("/");
|
|
|
|
if (users.changePassword(decodeURIComponent(token), decodeURIComponent(password))) {
|
|
res.set("Location", path + "/confirmed.html");
|
|
} else {
|
|
res.set("Location", path + "/invalid.html");
|
|
}
|
|
|
|
res.status(303);
|
|
});
|
|
}());
|