| DTabidze | 4b44ff4 | 2024-04-02 03:16:26 +0400 | [diff] [blame] | 1 | {{ define "title" }} |
| gio | 134be72 | 2025-07-20 19:01:17 +0400 | [diff] [blame^] | 2 | User - {{ .User.Username }} |
| DTabidze | 4b44ff4 | 2024-04-02 03:16:26 +0400 | [diff] [blame] | 3 | {{ end }} |
| 4 | {{- define "content" -}} |
| gio | 134be72 | 2025-07-20 19:01:17 +0400 | [diff] [blame^] | 5 | {{ $currentUserId := .User.Id }} |
| Davit Tabidze | 75d57c3 | 2024-07-19 19:17:55 +0400 | [diff] [blame] | 6 | {{ $isLoggedInUser := .LoggedInUserPage}} |
| gio | 134be72 | 2025-07-20 19:01:17 +0400 | [diff] [blame^] | 7 | <h1 class="headline">User: {{ .User.Username }}</h1> |
| 8 | <p>{{ .User.Email }}</p> |
| Davit Tabidze | 75d57c3 | 2024-07-19 19:17:55 +0400 | [diff] [blame] | 9 | <hr class="divider"> |
| 10 | <h3>SSH Public keys</h3> |
| 11 | <div class="ssh-key-grid"> |
| 12 | {{ if eq (len .SSHPublicKeys) 0 }} |
| 13 | <p>No SSH keys configured.</p> |
| 14 | {{ else }} |
| 15 | {{ range .SSHPublicKeys }} |
| 16 | <div class="ssh-key-item"> |
| 17 | {{ if $isLoggedInUser }} |
| gio | 134be72 | 2025-07-20 19:01:17 +0400 | [diff] [blame^] | 18 | <form action="/user/{{ $currentUserId }}/remove-ssh-key" method="post" class="remove-form" data-confirmation-message="Are you sure you want to remove SSH key?"> |
| Davit Tabidze | 75d57c3 | 2024-07-19 19:17:55 +0400 | [diff] [blame] | 19 | <input type="hidden" name="ssh-key" value="{{ . }}"> |
| 20 | <button class="remove ssh-remove" type="submit"> |
| 21 | <div>{{ template "svgIcon" }}</div> |
| 22 | </button> |
| 23 | </form> |
| 24 | {{ end }} |
| 25 | <div class="ssh-key">{{ . }}</div> |
| 26 | </div> |
| 27 | {{ end }} |
| 28 | {{ end }} |
| 29 | </div> |
| DTabidze | 5d735e3 | 2024-03-26 16:01:06 +0400 | [diff] [blame] | 30 | {{ if .LoggedInUserPage }} |
| Davit Tabidze | 75d57c3 | 2024-07-19 19:17:55 +0400 | [diff] [blame] | 31 | <hr class="divider"> |
| gio | 134be72 | 2025-07-20 19:01:17 +0400 | [diff] [blame^] | 32 | <form action="/user/{{ .User.Id }}/ssh-key" method="post"> |
| Davit Tabidze | 75d57c3 | 2024-07-19 19:17:55 +0400 | [diff] [blame] | 33 | <fieldset class="grid twoone"> |
| 34 | <input type="text" id="ssh-hey" name="ssh-key" placeholder="Add SSH public key..." required> |
| 35 | <button type="submit">Add SSH public key</button> |
| 36 | </fieldset> |
| 37 | </form> |
| 38 | <hr class="divider"> |
| DTabidze | 0d80259 | 2024-03-19 17:42:45 +0400 | [diff] [blame] | 39 | <form action="/create-group" method="post"> |
| Davit Tabidze | 5f1a2c6 | 2024-07-17 17:57:27 +0400 | [diff] [blame] | 40 | <fieldset class="grid first"> |
| gio | 134be72 | 2025-07-20 19:01:17 +0400 | [diff] [blame^] | 41 | <input type="text" id="id" name="id" placeholder="Id" required> |
| 42 | <input type="text" id="title" name="title" placeholder="Title" required> |
| Davit Tabidze | 5f1a2c6 | 2024-07-17 17:57:27 +0400 | [diff] [blame] | 43 | <input type="text" id="description" name="description" placeholder="Description"> |
| 44 | <button type="submit">Create Group</button> |
| 45 | </fieldset> |
| DTabidze | 0d80259 | 2024-03-19 17:42:45 +0400 | [diff] [blame] | 46 | </form> |
| DTabidze | 5d735e3 | 2024-03-26 16:01:06 +0400 | [diff] [blame] | 47 | {{ end }} |
| Davit Tabidze | 75d57c3 | 2024-07-19 19:17:55 +0400 | [diff] [blame] | 48 | <hr class="divider"> |
| Davit Tabidze | 5f1a2c6 | 2024-07-17 17:57:27 +0400 | [diff] [blame] | 49 | |
| 50 | <h3>Owner of groups</h3> |
| 51 | <div class="user-remove"> |
| 52 | {{- range .OwnerGroups }} |
| gio | 134be72 | 2025-07-20 19:01:17 +0400 | [diff] [blame^] | 53 | <a href="/group/{{ .Id }}" role="button" |
| Davit Tabidze | 5f1a2c6 | 2024-07-17 17:57:27 +0400 | [diff] [blame] | 54 | {{ if ne .Description "" }} data-tooltip="{{ .Description }}" data-placement="bottom" {{ end }}> |
| gio | 134be72 | 2025-07-20 19:01:17 +0400 | [diff] [blame^] | 55 | {{ .Title }} |
| Davit Tabidze | 5f1a2c6 | 2024-07-17 17:57:27 +0400 | [diff] [blame] | 56 | </a> |
| 57 | {{- end }} |
| 58 | </div> |
| 59 | <hr class="divider"> |
| 60 | |
| 61 | <h3>Direct member of groups</h3> |
| 62 | <div class="user-remove"> |
| 63 | {{- range .MembershipGroups }} |
| gio | 134be72 | 2025-07-20 19:01:17 +0400 | [diff] [blame^] | 64 | <a href="/group/{{ .Id }}" role="button" |
| Davit Tabidze | 5f1a2c6 | 2024-07-17 17:57:27 +0400 | [diff] [blame] | 65 | {{ if ne .Description "" }} data-tooltip="{{ .Description }}" data-placement="bottom" {{ end }}> |
| gio | 134be72 | 2025-07-20 19:01:17 +0400 | [diff] [blame^] | 66 | {{ .Title }} |
| Davit Tabidze | 5f1a2c6 | 2024-07-17 17:57:27 +0400 | [diff] [blame] | 67 | </a> |
| 68 | {{- end }} |
| 69 | </div> |
| 70 | <hr class="divider"> |
| 71 | |
| 72 | <h3>Transitive member of groups</h3> |
| 73 | <div class="user-remove"> |
| DTabidze | c0b4d8f | 2024-03-22 17:25:10 +0400 | [diff] [blame] | 74 | {{- range .TransitiveGroups -}} |
| gio | 134be72 | 2025-07-20 19:01:17 +0400 | [diff] [blame^] | 75 | <a href="/group/{{ .Id }}" role="button" |
| Davit Tabidze | 5f1a2c6 | 2024-07-17 17:57:27 +0400 | [diff] [blame] | 76 | {{ if ne .Description "" }} data-tooltip="{{ .Description }}" data-placement="bottom" {{ end }}> |
| gio | 134be72 | 2025-07-20 19:01:17 +0400 | [diff] [blame^] | 77 | {{ .Title }} |
| Davit Tabidze | 5f1a2c6 | 2024-07-17 17:57:27 +0400 | [diff] [blame] | 78 | </a> |
| 79 | {{- end }} |
| 80 | </div> |
| Davit Tabidze | 75d57c3 | 2024-07-19 19:17:55 +0400 | [diff] [blame] | 81 | |
| 82 | <dialog id="confirmation" close> |
| 83 | <article> |
| 84 | <h3>Attention</h3> |
| 85 | <p id="confirmation-message">Are you sure?</p> |
| 86 | <footer> |
| 87 | <button id="cancel-button" class="secondary cancel-button">Cancel</button> |
| 88 | <button id="confirm-button">Confirm</button> |
| 89 | </footer> |
| 90 | </article> |
| 91 | </dialog> |
| DTabidze | 4b44ff4 | 2024-04-02 03:16:26 +0400 | [diff] [blame] | 92 | {{- end }} |