forked from forgejo/forgejo
Add Visible modes function from Organisation to Users too (#16069)
You can limit or hide organisations. This pull make it also posible for users - new strings to translte - add checkbox to user profile form - add checkbox to admin user.edit form - filter explore page user search - filter api admin and public user searches - allow admins view "hidden" users - add app option DEFAULT_USER_VISIBILITY - rewrite many files to use Visibility field - check for teams intersection - fix context output - right fake 404 if not visible Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
parent
19ac575d57
commit
22a0636544
32 changed files with 440 additions and 68 deletions
|
@ -37,7 +37,8 @@ func Users(ctx *context.Context) {
|
|||
ctx.Data["PageIsAdminUsers"] = true
|
||||
|
||||
explore.RenderUserSearch(ctx, &models.SearchUserOptions{
|
||||
Type: models.UserTypeIndividual,
|
||||
Actor: ctx.User,
|
||||
Type: models.UserTypeIndividual,
|
||||
ListOptions: models.ListOptions{
|
||||
PageSize: setting.UI.Admin.UserPagingNum,
|
||||
},
|
||||
|
@ -50,6 +51,7 @@ func NewUser(ctx *context.Context) {
|
|||
ctx.Data["Title"] = ctx.Tr("admin.users.new_account")
|
||||
ctx.Data["PageIsAdmin"] = true
|
||||
ctx.Data["PageIsAdminUsers"] = true
|
||||
ctx.Data["DefaultUserVisibilityMode"] = setting.Service.DefaultUserVisibilityMode
|
||||
|
||||
ctx.Data["login_type"] = "0-0"
|
||||
|
||||
|
@ -70,6 +72,7 @@ func NewUserPost(ctx *context.Context) {
|
|||
ctx.Data["Title"] = ctx.Tr("admin.users.new_account")
|
||||
ctx.Data["PageIsAdmin"] = true
|
||||
ctx.Data["PageIsAdminUsers"] = true
|
||||
ctx.Data["DefaultUserVisibilityMode"] = setting.Service.DefaultUserVisibilityMode
|
||||
|
||||
sources, err := models.LoginSources()
|
||||
if err != nil {
|
||||
|
@ -126,7 +129,8 @@ func NewUserPost(ctx *context.Context) {
|
|||
}
|
||||
u.MustChangePassword = form.MustChangePassword
|
||||
}
|
||||
if err := models.CreateUser(u); err != nil {
|
||||
|
||||
if err := models.CreateUser(u, &models.CreateUserOverwriteOptions{Visibility: form.Visibility}); err != nil {
|
||||
switch {
|
||||
case models.IsErrUserAlreadyExist(err):
|
||||
ctx.Data["Err_UserName"] = true
|
||||
|
@ -312,6 +316,8 @@ func EditUserPost(ctx *context.Context) {
|
|||
u.AllowImportLocal = form.AllowImportLocal
|
||||
u.AllowCreateOrganization = form.AllowCreateOrganization
|
||||
|
||||
u.Visibility = form.Visibility
|
||||
|
||||
// skip self Prohibit Login
|
||||
if ctx.User.ID == u.ID {
|
||||
u.ProhibitLogin = false
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue