Skip to content

Commit 33ca67f

Browse files
committed
Update URL formatting in templates to use string interpolation for user IDs
1 parent 6277008 commit 33ca67f

3 files changed

Lines changed: 23 additions & 11 deletions

File tree

.cspell.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"aquasecurity",
1414
"audiobookshelf",
1515
"autoconfig",
16+
"autofocus",
1617
"autoinstall",
1718
"autorun",
1819
"backticks",
@@ -26,6 +27,7 @@
2627
"CF_Token",
2728
"CHACHA",
2829
"CHANGEME",
30+
"checkmark",
2931
"checkmk",
3032
"chroot",
3133
"ciphersuites",
@@ -54,6 +56,7 @@
5456
"eno7",
5557
"eno8",
5658
"ethernets",
59+
"evenodd",
5760
"EXAMPLETOKEN",
5861
"failover",
5962
"finish-install",
@@ -104,8 +107,10 @@
104107
"keyout",
105108
"KMGTPE",
106109
"LACP",
110+
"larr",
107111
"ldflags",
108112
"letsencrypt",
113+
"libfoo",
109114
"lighthugger",
110115
"linecap",
111116
"linejoin",
@@ -135,19 +140,24 @@
135140
"nocloud",
136141
"nofile",
137142
"NOLB",
143+
"noopener",
138144
"noout",
139145
"NOPASSWD",
146+
"noreferrer",
140147
"nosniff",
141148
"nowrap",
142149
"nslookup",
143150
"nvme",
144151
"oflag",
145152
"onchange",
153+
"onclick",
154+
"oninput",
146155
"optmem",
147156
"passwordless",
148157
"PAT",
149158
"pem",
150159
"pidfile",
160+
"Pipx",
151161
"poententially",
152162
"portainer",
153163
"pxname",
@@ -178,7 +188,9 @@
178188
"somaxconn",
179189
"sonatype",
180190
"Sprintf",
191+
"starttls",
181192
"stot",
193+
"strs",
182194
"subiquity",
183195
"sudo",
184196
"svname",

gearbox/internal/framework/templates/pages/admin_permissions.templ

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ templ AdminPermissions(
7070
templ permissionUserRow(user *models.User, perms *models.UserPermissions) {
7171
<li>
7272
<a
73-
href={ templ.URL(fmt.Sprintf("/settings/permissions/%d", user.ID)) }
73+
href={ templ.URL(fmt.Sprintf("/settings/permissions/%s", user.ID)) }
7474
class="block hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors"
7575
>
7676
<div class="px-4 py-4 sm:px-6">

gearbox/internal/framework/templates/pages/user_pages.templ

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1089,20 +1089,20 @@ templ AdminUsers(admin *models.User, users []*models.User, pendingRequests []*mo
10891089
}
10901090
</td>
10911091
<td class="py-2 px-3 text-right space-x-2">
1092-
<a href={ templ.SafeURL(fmt.Sprintf("/settings/users/%d", u.ID)) } class="text-blue-600 dark:text-blue-400 hover:underline">Edit</a>
1093-
<a href={ templ.SafeURL(fmt.Sprintf("/settings/permissions/%d", u.ID)) } class="text-purple-600 dark:text-purple-400 hover:underline">Permissions</a>
1092+
<a href={ templ.SafeURL(fmt.Sprintf("/settings/users/%s", u.ID)) } class="text-blue-600 dark:text-blue-400 hover:underline">Edit</a>
1093+
<a href={ templ.SafeURL(fmt.Sprintf("/settings/permissions/%s", u.ID)) } class="text-purple-600 dark:text-purple-400 hover:underline">Permissions</a>
10941094
if u.ID != admin.ID {
10951095
if u.Status == models.UserStatusActive {
10961096
<form action="/settings/users/toggle" method="POST" class="inline">
10971097
<input type="hidden" name="csrf_token" value={ csrfToken }/>
1098-
<input type="hidden" name="user_id" value={ fmt.Sprintf("%d", u.ID) }/>
1098+
<input type="hidden" name="user_id" value={ u.ID }/>
10991099
<input type="hidden" name="action" value="disable"/>
11001100
<button type="submit" class="text-red-600 dark:text-red-400 hover:underline">Disable</button>
11011101
</form>
11021102
} else {
11031103
<form action="/settings/users/toggle" method="POST" class="inline">
11041104
<input type="hidden" name="csrf_token" value={ csrfToken }/>
1105-
<input type="hidden" name="user_id" value={ fmt.Sprintf("%d", u.ID) }/>
1105+
<input type="hidden" name="user_id" value={ u.ID }/>
11061106
<input type="hidden" name="action" value="enable"/>
11071107
<button type="submit" class="text-green-600 dark:text-green-400 hover:underline">Enable</button>
11081108
</form>
@@ -1130,7 +1130,7 @@ templ AdminUserDetail(admin *models.User, targetUser *models.User, errorMessage
11301130
</div>
11311131
<div class="flex items-center space-x-3">
11321132
<a
1133-
href={ templ.SafeURL(fmt.Sprintf("/settings/permissions/%d", targetUser.ID)) }
1133+
href={ templ.SafeURL(fmt.Sprintf("/settings/permissions/%s", targetUser.ID)) }
11341134
class="inline-flex items-center px-4 py-2 bg-purple-600 hover:bg-purple-700 text-white font-medium rounded-lg transition-colors"
11351135
>
11361136
<svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
@@ -1155,7 +1155,7 @@ templ AdminUserDetail(admin *models.User, targetUser *models.User, errorMessage
11551155
<!-- User Information -->
11561156
<div class="bg-white dark:bg-slate-800 p-6 rounded-lg shadow">
11571157
<h2 class="text-lg font-semibold mb-4 text-gray-800 dark:text-gray-100">User Information</h2>
1158-
<form action={ templ.SafeURL(fmt.Sprintf("/settings/users/%d", targetUser.ID)) } method="POST" class="space-y-4">
1158+
<form action={ templ.SafeURL(fmt.Sprintf("/settings/users/%s", targetUser.ID)) } method="POST" class="space-y-4">
11591159
<input type="hidden" name="csrf_token" value={ csrfToken }/>
11601160

11611161
<div class="grid grid-cols-2 gap-4">
@@ -1188,7 +1188,7 @@ templ AdminUserDetail(admin *models.User, targetUser *models.User, errorMessage
11881188
</select>
11891189
<p class="text-xs text-gray-500 dark:text-gray-400 mt-1">
11901190
For granular permissions, use
1191-
<a href={ templ.SafeURL(fmt.Sprintf("/settings/permissions/%d", targetUser.ID)) } class="text-purple-600 dark:text-purple-400 hover:underline font-medium">
1191+
<a href={ templ.SafeURL(fmt.Sprintf("/settings/permissions/%s", targetUser.ID)) } class="text-purple-600 dark:text-purple-400 hover:underline font-medium">
11921192
Manage Permissions
11931193
</a>
11941194
</p>
@@ -1216,7 +1216,7 @@ templ AdminUserDetail(admin *models.User, targetUser *models.User, errorMessage
12161216
<dl class="space-y-2 text-sm">
12171217
<div class="flex">
12181218
<dt class="w-36 text-gray-500 dark:text-gray-400">User ID:</dt>
1219-
<dd class="text-gray-800 dark:text-gray-200">{ fmt.Sprintf("%d", targetUser.ID) }</dd>
1219+
<dd class="text-gray-800 dark:text-gray-200">{ targetUser.ID }</dd>
12201220
</div>
12211221
<div class="flex">
12221222
<dt class="w-36 text-gray-500 dark:text-gray-400">Created:</dt>
@@ -1262,7 +1262,7 @@ templ AdminUserDetail(admin *models.User, targetUser *models.User, errorMessage
12621262
<p class="text-gray-700 dark:text-gray-300 font-medium">Force Password Reset</p>
12631263
<p class="text-xs text-gray-500 dark:text-gray-400">User will be required to change password on next login</p>
12641264
</div>
1265-
<form action={ templ.SafeURL(fmt.Sprintf("/settings/users/%d/reset-password", targetUser.ID)) } method="POST">
1265+
<form action={ templ.SafeURL(fmt.Sprintf("/settings/users/%s/reset-password", targetUser.ID)) } method="POST">
12661266
<input type="hidden" name="csrf_token" value={ csrfToken }/>
12671267
<button type="submit" class="bg-yellow-600 hover:bg-yellow-700 text-white font-medium py-2 px-4 rounded text-sm">
12681268
Force Reset
@@ -1275,7 +1275,7 @@ templ AdminUserDetail(admin *models.User, targetUser *models.User, errorMessage
12751275
<p class="text-gray-700 dark:text-gray-300 font-medium">Delete User</p>
12761276
<p class="text-xs text-gray-500 dark:text-gray-400">Permanently remove this user and all their data. This cannot be undone.</p>
12771277
</div>
1278-
<form action={ templ.SafeURL(fmt.Sprintf("/settings/users/%d/delete", targetUser.ID)) } method="POST" class="user-delete-form">
1278+
<form action={ templ.SafeURL(fmt.Sprintf("/settings/users/%s/delete", targetUser.ID)) } method="POST" class="user-delete-form">
12791279
<input type="hidden" name="csrf_token" value={ csrfToken }/>
12801280
<button type="submit" class="bg-red-600 hover:bg-red-700 text-white font-medium py-2 px-4 rounded text-sm">
12811281
Delete User

0 commit comments

Comments
 (0)