Option to hide Discord username
authorTheSaminator <TheSaminator@users.noreply.github.com>
Sat, 12 Feb 2022 15:01:57 +0000 (10:01 -0500)
committerTheSaminator <TheSaminator@users.noreply.github.com>
Sat, 12 Feb 2022 15:01:57 +0000 (10:01 -0500)
src/jvmMain/kotlin/starshipfights/auth/providers.kt
src/jvmMain/kotlin/starshipfights/data/auth/user_sessions.kt
src/jvmMain/kotlin/starshipfights/info/views_user.kt

index b4d4d041c9c75ffe56188b8128f5a1edc7ac8a0c..1732893c111b4f8d7ae4309571ecb8640ff83fab 100644 (file)
@@ -88,6 +88,7 @@ interface AuthProvider {
                                        val form = call.receiveParameters()
                                        
                                        val newUser = currentUser.copy(
+                                               showDiscordName = form["showdiscord"] == "yes",
                                                profileName = form["name"]?.takeIf { it.isNotBlank() && it.length <= PROFILE_NAME_MAX_LENGTH } ?: redirect("/me/manage?" + parametersOf("error", "Invalid name - must not be blank, must be at most $PROFILE_NAME_MAX_LENGTH characters").formUrlEncode()),
                                                profileBio = form["bio"]?.takeIf { it.isNotBlank() && it.length <= PROFILE_BIO_MAX_LENGTH } ?: redirect("/me/manage?" + parametersOf("error", "Invalid bio - must not be blank, must be at most $PROFILE_BIO_MAX_LENGTH characters").formUrlEncode())
                                        )
index 7fdeed55850db2764ee21f1bf348fbfadefffbdf..7b4f85cea90bc433838b16e6b1aa91adc301c71a 100644 (file)
@@ -19,6 +19,7 @@ data class User(
        val discordName: String,
        val discordDiscriminator: String,
        val discordAvatar: String?,
+       val showDiscordName: Boolean = false,
        
        val profileName: String,
        val profileBio: String,
index 454c937f8d5304c412256073d916bdc46e436455..3b3cdb0f3559e68da1a125e342308c772cce0329 100644 (file)
@@ -39,10 +39,12 @@ suspend fun ApplicationCall.userPage(): HTML.() -> Unit {
                        img(src = user.discordAvatarUrl)
                        p {
                                style = "text-align:center"
-                               +user.discordName
-                               +"#"
-                               +user.discordDiscriminator
-                               br
+                               if (user.showDiscordName) {
+                                       +user.discordName
+                                       +"#"
+                                       +user.discordDiscriminator
+                                       br
+                               }
                                when (user.status) {
                                        UserStatus.IN_BATTLE -> +"In Battle"
                                        UserStatus.READY_FOR_BATTLE -> +"In Battle"
@@ -160,6 +162,18 @@ suspend fun ApplicationCall.manageUserPage(): HTML.() -> Unit {
                                        
                                        +currentUser.profileBio
                                }
+                               h3 {
+                                       +"Privacy Settings"
+                               }
+                               label {
+                                       checkBoxInput {
+                                               name = "showdiscord"
+                                               checked = currentUser.showDiscordName
+                                               value = "yes"
+                                       }
+                                       +Entities.nbsp
+                                       +"Show Discord name"
+                               }
                                request.queryParameters["error"]?.let { errorMsg ->
                                        p {
                                                style = "color:#d22"