Project import generated by Copybara.
GitOrigin-RevId: 63746295f1a5ab5a619056791995793d65529e62
diff --git a/src/doedituser.php b/src/doedituser.php
new file mode 100644
index 0000000..bf62372
--- /dev/null
+++ b/src/doedituser.php
@@ -0,0 +1,43 @@
+<?php
+require_once("core.php");
+security::checkType(security::ADMIN);
+
+if (!security::checkParams("POST", [
+ ["id", security::PARAM_NEMPTY],
+ ["username", security::PARAM_NEMPTY],
+ ["name", security::PARAM_NEMPTY],
+ ["dni", security::PARAM_ISSET],
+ ["email", security::PARAM_ISEMAILOREMPTY],
+ ["category", security::PARAM_NEMPTY],
+ ["type", security::PARAM_ISSET]
+])) {
+ security::go("users.php?msg=empty");
+}
+
+$id = (int)$_POST["id"];
+$username = $_POST["username"];
+$name = $_POST["name"];
+$dni = $_POST["dni"];
+$email = $_POST["email"];
+$category = (int)$_POST["category"];
+$type = (int)$_POST["type"];
+
+$p = people::get($id);
+if ($p === false) security::go("users.php?msg=unexpected");
+
+if (!security::isAllowed($type) || !security::isAllowed($p["type"]) || !categories::exists($category) || !security::existsType($type)) security::go("users.php?msg=unexpected");
+
+if (people::edit($id, $username, $name, $dni, $email, $category, $type)) {
+ if (security::checkParams("POST", [["password", security::PARAM_NEMPTY]])) {
+ if (!security::passwordIsGoodEnough($_POST["password"])) security::go("users.php?msg=weakpassword");
+
+ $password_hash = password_hash($_POST["password"], PASSWORD_DEFAULT);
+ if (!people::updatePassword($id, $password_hash)) {
+ security::go("users.php?msg=couldntupdatepassword");
+ }
+ }
+} else {
+ security::go("users.php?msg=unexpected");
+}
+
+security::go("users.php?msg=modified");