mirror of
https://github.com/pocket-id/pocket-id.git
synced 2025-12-16 02:03:05 +03:00
fix: allow users to update their locale even when own account update disabled
This commit is contained in:
@@ -163,13 +163,6 @@ func (e *DuplicateClaimError) Error() string {
|
|||||||
}
|
}
|
||||||
func (e *DuplicateClaimError) HttpStatusCode() int { return http.StatusBadRequest }
|
func (e *DuplicateClaimError) HttpStatusCode() int { return http.StatusBadRequest }
|
||||||
|
|
||||||
type AccountEditNotAllowedError struct{}
|
|
||||||
|
|
||||||
func (e *AccountEditNotAllowedError) Error() string {
|
|
||||||
return "You are not allowed to edit your account"
|
|
||||||
}
|
|
||||||
func (e *AccountEditNotAllowedError) HttpStatusCode() int { return http.StatusForbidden }
|
|
||||||
|
|
||||||
type OidcInvalidCodeVerifierError struct{}
|
type OidcInvalidCodeVerifierError struct{}
|
||||||
|
|
||||||
func (e *OidcInvalidCodeVerifierError) Error() string {
|
func (e *OidcInvalidCodeVerifierError) Error() string {
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import (
|
|||||||
"github.com/pocket-id/pocket-id/backend/internal/utils/cookie"
|
"github.com/pocket-id/pocket-id/backend/internal/utils/cookie"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/pocket-id/pocket-id/backend/internal/common"
|
|
||||||
"github.com/pocket-id/pocket-id/backend/internal/dto"
|
"github.com/pocket-id/pocket-id/backend/internal/dto"
|
||||||
"github.com/pocket-id/pocket-id/backend/internal/middleware"
|
"github.com/pocket-id/pocket-id/backend/internal/middleware"
|
||||||
"github.com/pocket-id/pocket-id/backend/internal/service"
|
"github.com/pocket-id/pocket-id/backend/internal/service"
|
||||||
@@ -228,10 +227,6 @@ func (uc *UserController) updateUserHandler(c *gin.Context) {
|
|||||||
// @Success 200 {object} dto.UserDto
|
// @Success 200 {object} dto.UserDto
|
||||||
// @Router /api/users/me [put]
|
// @Router /api/users/me [put]
|
||||||
func (uc *UserController) updateCurrentUserHandler(c *gin.Context) {
|
func (uc *UserController) updateCurrentUserHandler(c *gin.Context) {
|
||||||
if !uc.appConfigService.GetDbConfig().AllowOwnAccountEdit.IsTrue() {
|
|
||||||
_ = c.Error(&common.AccountEditNotAllowedError{})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
uc.updateUser(c, true)
|
uc.updateUser(c, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -294,10 +294,10 @@ func (s *UserService) updateUserInternal(ctx context.Context, userID string, upd
|
|||||||
|
|
||||||
// Check if this is an LDAP user and LDAP is enabled
|
// Check if this is an LDAP user and LDAP is enabled
|
||||||
isLdapUser := user.LdapID != nil && s.appConfigService.GetDbConfig().LdapEnabled.IsTrue()
|
isLdapUser := user.LdapID != nil && s.appConfigService.GetDbConfig().LdapEnabled.IsTrue()
|
||||||
|
allowOwnAccountEdit := s.appConfigService.GetDbConfig().AllowOwnAccountEdit.IsTrue()
|
||||||
|
|
||||||
// For LDAP users, only allow updating the locale unless it's an LDAP sync
|
// For LDAP users or if own account editing is not allowed, only allow updating the locale unless it's an LDAP sync
|
||||||
if !isLdapSync && isLdapUser {
|
if !isLdapSync && (isLdapUser || (!allowOwnAccountEdit && !updateOwnUser)) {
|
||||||
// Only update the locale for LDAP users
|
|
||||||
user.Locale = updatedUser.Locale
|
user.Locale = updatedUser.Locale
|
||||||
} else {
|
} else {
|
||||||
user.FirstName = updatedUser.FirstName
|
user.FirstName = updatedUser.FirstName
|
||||||
|
|||||||
Reference in New Issue
Block a user