root user SignPuddle 3 User API https://signpuddle.com/server line > v3.0.0 group user SignPuddle 3 collections are organized by country and language codes line + Source: [ApiTxt format](../src/user.txt) and [JSON objects](../src/user.json) line + Documents: [API Blueprint](../doc/user.md) and [Stand Alone HTML](../doc/user.htm) line + Live Page: [API Interface](../api/user.html) and [JavaScript](../api/user.js) route /user/who Who uses SignWriting? List of countries with size and activity. method GET Retrieve country list The available countries where signs are available. request user-who response 200 text/plain body BR body US route /user/pass User pass A string for accounting and validation method POST String for accounting and validation code echo json_pretty(userPass()); request user pass response 200 text/plain body {"pass": "90c19ce2076db097c75b3406e966a6b6","ip": "192.168.254.2"} method PUT Check pass against user code $data = $app->request->getbody(); code $data = json_decode($data,true); code verifyPass($data['username'],$data['pass']); code $app->response->setStatus(204); code return; request user pass verify line + Attributes line + username: anonymous (string) - name of the user line + pass: af77... (string) - pass for session validation body {"username":"anonymous","pass":"af77..."} response 204 route /user/login User login Validation of user with validated password method PUT Process log in to server code $data = $app->request->getbody(); code $data = json_decode($data,true); code $results = userVerify($data['username'],$data['pass'],$data['validated']); code echo json_pretty($results); request verify user application/json line + Attributes line + username: anonymous (string) - name of the user line + pass: af77... (string) - pass for session validation line + validated: 2793f... (string) - validated pass mixed with password body {"username":"anonymous","pass":"af77...","validated":"2793f..."} response 200 application/json line response text here body {"user-profile":""} route /user/{name} User profile User details parameter name slevinski string The name of a user method PUT Update user profile Updates the profile of the user code $headers = getHeaders(); code $pass = isset($headers['Pass'])?$headers['Pass']:''; code $user = userVerified($pass); code if ($user!=$name) haltForbidden($user . " not " . $name); code $data = $app->request->getbody(); code $data = json_decode($data,true); code userProfileUpdate($name,$data); code $app->response->setStatus(204); code return; request user-update header Pass 5ffab638bde372b4fa63bb6f8484595d response 204 method POST Register new user Creates and returns a new user request user-add header Pass 5ffab638bde372b4fa63bb6f8484595d response 200 text/plain body profile created and returned route /user/{name}/password User password User password resource parameter name slevinski string The name of a user method POST Update user password Updates the password of the user code $headers = getHeaders(); code $pass = isset($headers['Pass'])?$headers['Pass']:''; code $user = userVerified($pass,true); code if (!$user) haltForbidden(); code $data = $app->request->getbody(); code $data = json_decode($data,true); code $old = isset($data['old'])?$data['old']:''; code $new = isset($data['new'])?$data['new']:''; code if ($old && $new){ code userPasswordUpdate($name,$old,$new); code $app->response->setStatus(204); code return; code } else { code haltBadRequest(); code } request user-update-password plain/text header Pass 5ffab638bde372b4fa63bb6f8484595d body {"old":"149603e6c03516362a8da23f624db945","new":"22af645d1859cb5ca6da0c484f1f37ea"} response 204 method PUT Reset user password Creates a temporary password for the user code $headers = getHeaders(); code $pass = isset($headers['Pass'])?$headers['Pass']:''; code $user = userVerified($pass,true); code if (!$user) haltForbidden(); code $data = $app->request->getbody(); code $data = json_decode($data,true); code $user = isset($data['user'])?$data['user']:''; code if ($user){ code userPasswordReset($user); code $app->response->setStatus(204); code return; code } else { code haltBadRequest(); code } request user-password-reset plain/text header Pass 5ffab638bde372b4fa63bb6f8484595d response 204 route /user/email User email requests Requests for email of username or password reset method GET List of user email requests User email requests for username or passwords code $headers = getHeaders(); code $pass = isset($headers['Pass'])?$headers['Pass']:''; code rightscheck("",$pass,SP_ADMIN); code $users = userEmailRequests(); code echo json_pretty($users); code return; request user-email-request header Pass 5ffab638bde372b4fa63bb6f8484595d response 200 text/plain body [{"name":"slevinski","email":"slevinski@signwriting.org","temp":"username"}] route /user/email/{email} Username lookup Forgot username email lookup parameter email slevinski@signwriting.org string The email for a user method PUT Lookup username Creates a request for email of username code $headers = getHeaders(); code $pass = isset($headers['Pass'])?$headers['Pass']:''; code $user = userVerified($pass,true); code if (!$user) haltForbidden(); code userNameLookup($email); code $app->response->setStatus(204); code return; request user-name-lookup header Pass 5ffab638bde372b4fa63bb6f8484595d response 204