bsw@9: local login = param.get("login") bsw@9: bsw@9: login = util.trim(login) bsw@9: bsw@9: if #login < 3 then bsw@9: slot.put_into(_error, _"This login is too short!") bsw@9: end bsw@9: bsw@9: app.session.member.login = login bsw@9: bsw@9: local db_error = app.session.member:try_save() bsw@9: bsw@9: if db_error then bsw@9: if db_error:is_kind_of("IntegrityConstraintViolation.UniqueViolation") then bsw@9: slot.put_into("error", _"This login is already taken, please choose another one!") bsw@9: return false bsw@9: end bsw@9: db_error:escalate() bsw@9: end bsw@9: bsw@9: slot.put_into("notice", _("Your login has been changed to '#{login}'", { login = login }))