2023-04-23 06:21:21 -04:00
{{ template "admin/layout_head" ( dict "ctxData" . "pageClass" "admin edit user" ) }}
< div class = "admin-setting-content" >
2017-03-15 18:39:38 -04:00
< h4 class = "ui top attached header" >
2022-06-27 16:58:46 -04:00
{{ .locale.Tr "admin.users.edit_account" }}
2017-03-15 18:39:38 -04:00
< / h4 >
< div class = "ui attached segment" >
< form class = "ui form" action = " {{ .Link }} " method = "post" >
2021-10-18 18:08:41 -04:00
{{ template "base/disable_form_autofill" }}
2017-03-15 18:39:38 -04:00
{{ .CsrfTokenHtml }}
2021-01-10 07:14:02 -05:00
< div class = "field {{ if .Err_UserName }} error {{ end }} " >
2022-06-27 16:58:46 -04:00
< label for = "user_name" > {{ .locale.Tr "username" }} </ label >
2023-05-26 05:42:54 -04:00
< input id = "user_name" name = "user_name" value = " {{ .User.Name }} " autofocus {{ if not .User.IsLocal }} disabled {{ end }} maxlength = "40" >
2017-03-15 18:39:38 -04:00
< / div >
<!-- Types and name -->
< div class = "inline required field {{ if .Err_LoginType }} error {{ end }} " >
2022-06-27 16:58:46 -04:00
< label > {{ .locale.Tr "admin.users.auth_source" }} </ label >
2017-03-15 18:39:38 -04:00
< div class = "ui selection type dropdown" >
2021-08-11 16:42:58 -04:00
< input type = "hidden" id = "login_type" name = "login_type" value = " {{ .LoginSource.Type.Int }} - {{ .LoginSource.ID }} " required >
2022-06-27 16:58:46 -04:00
< div class = "text" > {{ .locale.Tr "admin.users.local" }} </ div >
2020-10-31 18:15:11 -04:00
{{ svg "octicon-triangle-down" 14 "dropdown icon" }}
2017-03-15 18:39:38 -04:00
< div class = "menu" >
2022-06-27 16:58:46 -04:00
< div class = "item" data-value = "0-0" > {{ .locale.Tr "admin.users.local" }} </ div >
2017-03-15 18:39:38 -04:00
{{ range .Sources }}
2021-08-11 16:42:58 -04:00
< div class = "item" data-value = " {{ .Type.Int }} - {{ .ID }} " > {{ .Name }} </ div >
2017-03-15 18:39:38 -04:00
{{ end }}
< / div >
< / div >
< / div >
2021-06-26 15:53:14 -04:00
< div class = "inline field {{ if .Err_Visibility }} error {{ end }} " >
2022-06-27 16:58:46 -04:00
< span class = "inline required field" >< label for = "visibility" > {{ .locale.Tr "settings.visibility" }} </ label ></ span >
2021-06-26 15:53:14 -04:00
< div class = "ui selection type dropdown" >
2021-06-27 14:47:35 -04:00
{{ if .User.Visibility.IsPublic }} < input type = "hidden" id = "visibility" name = "visibility" value = "0" > {{ end }}
{{ if .User.Visibility.IsLimited }} < input type = "hidden" id = "visibility" name = "visibility" value = "1" > {{ end }}
{{ if .User.Visibility.IsPrivate }} < input type = "hidden" id = "visibility" name = "visibility" value = "2" > {{ end }}
2021-06-26 15:53:14 -04:00
< div class = "text" >
2022-06-27 16:58:46 -04:00
{{ if .User.Visibility.IsPublic }}{{ .locale.Tr "settings.visibility.public" }}{{ end }}
{{ if .User.Visibility.IsLimited }}{{ .locale.Tr "settings.visibility.limited" }}{{ end }}
{{ if .User.Visibility.IsPrivate }}{{ .locale.Tr "settings.visibility.private" }}{{ end }}
2021-06-26 15:53:14 -04:00
< / div >
{{ svg "octicon-triangle-down" 14 "dropdown icon" }}
< div class = "menu" >
2021-06-27 14:47:35 -04:00
{{ range $mode := .AllowedUserVisibilityModes }}
{{ if $mode .IsPublic }}
2023-03-24 06:35:38 -04:00
< div class = "item" data-tooltip-content = " {{ $.locale.Tr "settings.visibility.public_tooltip" }} " data-value = "0" > {{ $.locale.Tr "settings.visibility.public" }} </ div >
2021-06-27 14:47:35 -04:00
{{ else if $mode .IsLimited }}
2023-03-24 06:35:38 -04:00
< div class = "item" data-tooltip-content = " {{ $.locale.Tr "settings.visibility.limited_tooltip" }} " data-value = "1" > {{ $.locale.Tr "settings.visibility.limited" }} </ div >
2021-06-27 14:47:35 -04:00
{{ else if $mode .IsPrivate }}
2023-03-24 06:35:38 -04:00
< div class = "item" data-tooltip-content = " {{ $.locale.Tr "settings.visibility.private_tooltip" }} " data-value = "2" > {{ $.locale.Tr "settings.visibility.private" }} </ div >
2021-06-27 14:47:35 -04:00
{{ end }}
{{ end }}
2021-06-26 15:53:14 -04:00
< / div >
< / div >
< / div >
2023-02-18 23:06:14 -05:00
< div class = "required non-local field {{ if .Err_LoginName }} error {{ end }} {{ if eq .User.LoginSource 0 }} gt-hidden {{ end }} " >
2022-06-27 16:58:46 -04:00
< label for = "login_name" > {{ .locale.Tr "admin.users.auth_login_name" }} </ label >
2017-03-15 18:39:38 -04:00
< input id = "login_name" name = "login_name" value = " {{ .User.LoginName }} " autofocus >
< / div >
< div class = "field {{ if .Err_FullName }} error {{ end }} " >
2022-06-27 16:58:46 -04:00
< label for = "full_name" > {{ .locale.Tr "settings.full_name" }} </ label >
2023-05-26 05:42:54 -04:00
< input id = "full_name" name = "full_name" value = " {{ .User.FullName }} " maxlength = "100" >
2017-03-15 18:39:38 -04:00
< / div >
< div class = "required field {{ if .Err_Email }} error {{ end }} " >
2022-06-27 16:58:46 -04:00
< label for = "email" > {{ .locale.Tr "email" }} </ label >
2017-03-15 18:39:38 -04:00
< input id = "email" name = "email" type = "email" value = " {{ .User.Email }} " autofocus required >
< / div >
2023-02-18 23:06:14 -05:00
< div class = "local field {{ if .Err_Password }} error {{ end }} {{ if not ( or ( .User.IsLocal ) ( .User.IsOAuth2 )) }} gt-hidden {{ end }} " >
2022-06-27 16:58:46 -04:00
< label for = "password" > {{ .locale.Tr "password" }} </ label >
2020-10-09 03:32:30 -04:00
< input id = "password" name = "password" type = "password" autocomplete = "new-password" >
2022-06-27 16:58:46 -04:00
< p class = "help" > {{ .locale.Tr "admin.users.password_helper" }} </ p >
2017-03-15 18:39:38 -04:00
< / div >
< div class = "field {{ if .Err_Website }} error {{ end }} " >
2022-06-27 16:58:46 -04:00
< label for = "website" > {{ .locale.Tr "settings.website" }} </ label >
2023-06-14 14:17:58 -04:00
< input id = "website" name = "website" type = "url" value = " {{ .User.Website }} " placeholder = "http://mydomain.com or https://mydomain.com" maxlength = "255" >
2017-03-15 18:39:38 -04:00
< / div >
< div class = "field {{ if .Err_Location }} error {{ end }} " >
2022-06-27 16:58:46 -04:00
< label for = "location" > {{ .locale.Tr "settings.location" }} </ label >
2023-05-26 05:42:54 -04:00
< input id = "location" name = "location" value = " {{ .User.Location }} " maxlength = "50" >
2017-03-15 18:39:38 -04:00
< / div >
2015-09-13 11:07:21 -04:00
2023-06-29 08:24:22 -04:00
< div class = "divider" > < / div >
2015-12-10 12:37:53 -05:00
2017-03-15 18:39:38 -04:00
< div class = "inline field {{ if .Err_MaxRepoCreation }} error {{ end }} " >
2022-06-27 16:58:46 -04:00
< label for = "max_repo_creation" > {{ .locale.Tr "admin.users.max_repo_creation" }} </ label >
2023-05-26 05:42:54 -04:00
< input id = "max_repo_creation" name = "max_repo_creation" type = "number" min = "-1" value = " {{ .User.MaxRepoCreation }} " >
2022-06-27 16:58:46 -04:00
< p class = "help" > {{ .locale.Tr "admin.users.max_repo_creation_desc" }} </ p >
2017-03-15 18:39:38 -04:00
< / div >
2015-12-10 12:37:53 -05:00
2023-06-29 08:24:22 -04:00
< div class = "divider" > < / div >
2015-12-10 12:37:53 -05:00
2017-03-15 18:39:38 -04:00
< div class = "inline field" >
< div class = "ui checkbox" >
2022-06-27 16:58:46 -04:00
< label >< strong > {{ .locale.Tr "admin.users.is_activated" }} </ strong ></ label >
2017-03-15 18:39:38 -04:00
< input name = "active" type = "checkbox" {{ if .User.IsActive }} checked {{ end }} >
< / div >
< / div >
< div class = "inline field" >
< div class = "ui checkbox" >
2022-06-27 16:58:46 -04:00
< label >< strong > {{ .locale.Tr "admin.users.prohibit_login" }} </ strong ></ label >
2020-04-06 10:23:15 -04:00
< input name = "prohibit_login" type = "checkbox" {{ if .User.ProhibitLogin }} checked {{ end }} {{ if ( eq .User.ID .SignedUserID ) }} disabled {{ end }} >
2017-03-15 18:39:38 -04:00
< / div >
< / div >
< div class = "inline field" >
< div class = "ui checkbox" >
2022-06-27 16:58:46 -04:00
< label >< strong > {{ .locale.Tr "admin.users.is_admin" }} </ strong ></ label >
2017-03-15 18:39:38 -04:00
< input name = "admin" type = "checkbox" {{ if .User.IsAdmin }} checked {{ end }} >
< / div >
< / div >
2020-01-13 12:33:46 -05:00
< div class = "inline field" >
< div class = "ui checkbox" >
2022-06-27 16:58:46 -04:00
< label >< strong > {{ .locale.Tr "admin.users.is_restricted" }} </ strong ></ label >
2020-01-13 12:33:46 -05:00
< input name = "restricted" type = "checkbox" {{ if .User.IsRestricted }} checked {{ end }} >
< / div >
< / div >
2023-02-18 23:06:14 -05:00
< div class = "inline field {{ if DisableGitHooks }} gt-hidden {{ end }} " >
2023-03-24 06:35:38 -04:00
< div class = "ui checkbox" data-tooltip-content = " {{ .locale.Tr "admin.users.allow_git_hook_tooltip" }} " >
2022-06-27 16:58:46 -04:00
< label >< strong > {{ .locale.Tr "admin.users.allow_git_hook" }} </ strong ></ label >
2017-09-12 05:25:42 -04:00
< input name = "allow_git_hook" type = "checkbox" {{ if .User.CanEditGitHook }} checked {{ end }} {{ if DisableGitHooks }} disabled {{ end }} >
2017-03-15 18:39:38 -04:00
< / div >
< / div >
2023-02-22 10:26:02 -05:00
< div class = "inline field {{ if or ( DisableImportLocal ) ( .DisableMigrations ) }} gt-hidden {{ end }} " >
2017-03-15 18:39:38 -04:00
< div class = "ui checkbox" >
2022-06-27 16:58:46 -04:00
< label >< strong > {{ .locale.Tr "admin.users.allow_import_local" }} </ strong ></ label >
2018-08-24 01:00:22 -04:00
< input name = "allow_import_local" type = "checkbox" {{ if .User.CanImportLocal }} checked {{ end }} {{ if DisableImportLocal }} disabled {{ end }} >
2017-03-15 18:39:38 -04:00
< / div >
< / div >
{{ if not .DisableRegularOrgCreation }}
< div class = "inline field" >
< div class = "ui checkbox" >
2022-06-27 16:58:46 -04:00
< label >< strong > {{ .locale.Tr "admin.users.allow_create_organization" }} </ strong ></ label >
2017-03-15 18:39:38 -04:00
< input name = "allow_create_organization" type = "checkbox" {{ if .User.CanCreateOrganization }} checked {{ end }} >
< / div >
< / div >
{{ end }}
2015-09-13 11:07:21 -04:00
2021-01-05 08:54:48 -05:00
{{ if .TwoFactorEnabled }}
2023-06-29 08:24:22 -04:00
< div class = "divider" > < / div >
2021-01-05 08:54:48 -05:00
< div class = "inline field" >
< div class = "ui checkbox" >
2022-06-27 16:58:46 -04:00
< label >< strong > {{ .locale.Tr "admin.users.reset_2fa" }} </ strong ></ label >
2021-01-05 08:54:48 -05:00
< input name = "reset_2fa" type = "checkbox" >
< / div >
< / div >
{{ end }}
2023-06-29 08:24:22 -04:00
< div class = "divider" > < / div >
2015-12-11 19:24:57 -05:00
2017-03-15 18:39:38 -04:00
< div class = "field" >
2022-06-27 16:58:46 -04:00
< button class = "ui green button" > {{ .locale.Tr "admin.users.update_profile" }} </ button >
2023-03-13 23:34:09 -04:00
< button class = "ui red button show-modal" data-modal = "#delete-user-modal" > {{ .locale.Tr "admin.users.delete_account" }} </ button >
2015-12-07 17:30:52 -05:00
< / div >
2017-03-15 18:39:38 -04:00
< / form >
2014-08-29 03:32:52 -04:00
< / div >
2021-11-16 14:13:13 -05:00
< h4 class = "ui top attached header" >
2022-06-27 16:58:46 -04:00
{{ .locale.Tr "settings.avatar" }}
2021-11-16 14:13:13 -05:00
< / h4 >
< div class = "ui attached segment" >
< form class = "ui form" action = " {{ .Link }} /avatar" method = "post" enctype = "multipart/form-data" >
{{ .CsrfTokenHtml }}
2023-08-08 04:29:14 -04:00
{{ if not .DisableGravatar }}
2021-11-16 14:13:13 -05:00
< div class = "inline field" >
< div class = "ui radio checkbox" >
< input name = "source" value = "lookup" type = "radio" {{ if not .User.UseCustomAvatar }} checked {{ end }} >
2022-06-27 16:58:46 -04:00
< label > {{ .locale.Tr "settings.lookup_avatar_by_mail" }} </ label >
2021-11-16 14:13:13 -05:00
< / div >
< / div >
2023-05-30 18:28:25 -04:00
< div class = "field gt-pl-4 {{ if .Err_Gravatar }} error {{ end }} " >
2022-06-27 16:58:46 -04:00
< label for = "gravatar" > Avatar {{ .locale.Tr "email" }} </ label >
2023-03-27 12:05:51 -04:00
< input id = "gravatar" name = "gravatar" value = " {{ .User.AvatarEmail }} " >
2021-11-16 14:13:13 -05:00
< / div >
{{ end }}
< div class = "inline field" >
< div class = "ui radio checkbox" >
< input name = "source" value = "local" type = "radio" {{ if .User.UseCustomAvatar }} checked {{ end }} >
2022-06-27 16:58:46 -04:00
< label > {{ .locale.Tr "settings.enable_custom_avatar" }} </ label >
2021-11-16 14:13:13 -05:00
< / div >
< / div >
2023-05-30 18:28:25 -04:00
< div class = "inline field gt-pl-4" >
2022-06-27 16:58:46 -04:00
< label for = "avatar" > {{ .locale.Tr "settings.choose_new_avatar" }} </ label >
2023-05-26 05:42:54 -04:00
< input name = "avatar" type = "file" accept = "image/png,image/jpeg,image/gif,image/webp" >
2021-11-16 14:13:13 -05:00
< / div >
< div class = "field" >
2022-06-27 16:58:46 -04:00
< button class = "ui green button" > {{ $.locale.Tr "settings.update_avatar" }} </ button >
2023-06-13 08:10:10 -04:00
< button class = "ui red button link-action" data-url = " {{ .Link }} /avatar/delete" data-redirect = " {{ .Link }} " > {{ $.locale.Tr "settings.delete_current_avatar" }} </ button >
2021-11-16 14:13:13 -05:00
< / div >
< / form >
< / div >
2014-03-21 06:15:58 -04:00
< / div >
2015-09-13 11:07:21 -04:00
2023-04-24 07:08:59 -04:00
< div class = "ui g-modal-confirm delete modal" id = "delete-user-modal" >
2023-04-23 05:24:19 -04:00
< div class = "header" >
2021-03-22 00:04:19 -04:00
{{ svg "octicon-trash" }}
2022-06-27 16:58:46 -04:00
{{ .locale.Tr "settings.delete_account_title" }}
2015-12-07 17:30:52 -05:00
< / div >
2023-06-14 14:17:58 -04:00
< form class = "ui form" method = "post" action = " {{ .Link }} /delete" >
2023-05-30 06:08:09 -04:00
< div class = "content" >
< p > {{ .locale.Tr "settings.delete_account_desc" }} </ p >
{{ $.CsrfTokenHtml }}
< div class = "field" >
< div class = "ui checkbox" >
< label for = "purge" > {{ .locale.Tr "admin.users.purge" }} </ label >
< input name = "purge" type = "checkbox" >
< / div >
< p class = "help" > {{ .locale.Tr "admin.users.purge_help" }} </ p >
2022-07-14 03:22:09 -04:00
< / div >
< / div >
2023-04-23 05:24:19 -04:00
{{ template "base/modal_actions_confirm" . }}
2022-07-14 03:22:09 -04:00
< / form >
2015-09-13 11:07:21 -04:00
< / div >
2023-04-23 06:21:21 -04:00
{{ template "admin/layout_footer" . }}