# HG changeset patch
# User Kim Alvefur <zash@zash.se>
# Date 1546766792 -3600
# Node ID 213679266dcb270bd0da239cad4434f61858659e
# Parent  61368aec97d6f1271ad61804b604908f54026d95
mod_http_pep_avatar: Redirect to prepped username

diff -r 61368aec97d6 -r 213679266dcb mod_http_pep_avatar/mod_http_pep_avatar.lua
--- a/mod_http_pep_avatar/mod_http_pep_avatar.lua	Sun Jan 06 10:24:32 2019 +0100
+++ b/mod_http_pep_avatar/mod_http_pep_avatar.lua	Sun Jan 06 10:26:32 2019 +0100
@@ -6,6 +6,7 @@
 local um = require "core.usermanager";
 local nodeprep = require "util.encodings".stringprep.nodeprep;
 local base64_decode = require "util.encodings".base64.decode;
+local urlencode = require "util.http".urlencode;
 
 module:depends("http")
 module:provides("http", {
@@ -14,8 +15,12 @@
 			local request, response = event.request, event.response;
 			local actor = request.ip;
 
-			user = nodeprep(user);
-			if not user then return 400; end
+			local prepped = nodeprep(user);
+			if not prepped then return 400; end
+			if prepped ~= user then
+				response.headers.location = module:http_url() .. "/" .. urlencode(prepped);
+				return 302;
+			end
 			if not um.user_exists(user, module.host) then
 				return 404;
 			end