Change User Roles (#1153)
* Modify user service and controller * Modify Template * Add messages * Fix Username output * Add tooltip * Change Role Modify logic * Add Roles from database to existing users * Add default select Fillers * Indent JS * Add Change Role Related Translations * Remove unnecessary Whitespace and imports
This commit is contained in:
parent
c622ee915b
commit
d7afc574a6
33 changed files with 213 additions and 0 deletions
|
@ -15,6 +15,9 @@ import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||||
import org.springframework.security.config.http.SessionCreationPolicy;
|
import org.springframework.security.config.http.SessionCreationPolicy;
|
||||||
import org.springframework.security.core.Authentication;
|
import org.springframework.security.core.Authentication;
|
||||||
|
import org.springframework.security.core.GrantedAuthority;
|
||||||
|
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
||||||
|
import org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper;
|
||||||
import org.springframework.security.core.session.SessionRegistry;
|
import org.springframework.security.core.session.SessionRegistry;
|
||||||
import org.springframework.security.core.session.SessionRegistryImpl;
|
import org.springframework.security.core.session.SessionRegistryImpl;
|
||||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||||
|
@ -23,6 +26,7 @@ import org.springframework.security.crypto.password.PasswordEncoder;
|
||||||
import org.springframework.security.oauth2.client.registration.ClientRegistration;
|
import org.springframework.security.oauth2.client.registration.ClientRegistration;
|
||||||
import org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository;
|
import org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository;
|
||||||
import org.springframework.security.oauth2.core.user.OAuth2User;
|
import org.springframework.security.oauth2.core.user.OAuth2User;
|
||||||
|
import org.springframework.security.oauth2.core.user.OAuth2UserAuthority;
|
||||||
import org.springframework.security.web.SecurityFilterChain;
|
import org.springframework.security.web.SecurityFilterChain;
|
||||||
import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
|
import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
|
||||||
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
|
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
|
||||||
|
@ -34,9 +38,11 @@ import org.springframework.security.oauth2.client.registration.ClientRegistratio
|
||||||
|
|
||||||
import jakarta.servlet.http.HttpSession;
|
import jakarta.servlet.http.HttpSession;
|
||||||
import stirling.software.SPDF.model.ApplicationProperties;
|
import stirling.software.SPDF.model.ApplicationProperties;
|
||||||
|
import stirling.software.SPDF.model.User;
|
||||||
import stirling.software.SPDF.repository.JPATokenRepositoryImpl;
|
import stirling.software.SPDF.repository.JPATokenRepositoryImpl;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableWebSecurity()
|
@EnableWebSecurity()
|
||||||
|
@ -182,6 +188,10 @@ public class SecurityConfiguration {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
// Add existing Authorities from the database
|
||||||
|
.userInfoEndpoint( userInfoEndpoint ->
|
||||||
|
userInfoEndpoint.userAuthoritiesMapper(userAuthoritiesMapper())
|
||||||
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -210,6 +220,38 @@ public class SecurityConfiguration {
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
This following function is to grant Authorities to the OAUTH2 user from the values stored in the database.
|
||||||
|
This is required for the internal; 'hasRole()' function to give out the correct role.
|
||||||
|
*/
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnProperty(value = "security.oauth2.enabled" , havingValue = "true", matchIfMissing = false)
|
||||||
|
GrantedAuthoritiesMapper userAuthoritiesMapper() {
|
||||||
|
return (authorities) -> {
|
||||||
|
Set<GrantedAuthority> mappedAuthorities = new HashSet<>();
|
||||||
|
|
||||||
|
authorities.forEach(authority -> {
|
||||||
|
// Add existing OAUTH2 Authorities
|
||||||
|
mappedAuthorities.add(new SimpleGrantedAuthority(authority.getAuthority()));
|
||||||
|
|
||||||
|
// Add Authorities from database for existing user, if user is present.
|
||||||
|
if (authority instanceof OAuth2UserAuthority oauth2Auth) {
|
||||||
|
Optional<User> userOpt = userService.findByUsernameIgnoreCase((String)oauth2Auth.getAttributes().get("email"));
|
||||||
|
if (userOpt.isPresent()) {
|
||||||
|
User user = userOpt.get();
|
||||||
|
if (user != null){
|
||||||
|
mappedAuthorities.add(new SimpleGrantedAuthority(
|
||||||
|
userService
|
||||||
|
.findRole(user)
|
||||||
|
.getAuthority()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return mappedAuthorities;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public IPRateLimitingFilter rateLimitingFilter() {
|
public IPRateLimitingFilter rateLimitingFilter() {
|
||||||
int maxRequestsPerIp = 1000000; // Example limit TODO add config level
|
int maxRequestsPerIp = 1000000; // Example limit TODO add config level
|
||||||
|
|
|
@ -21,6 +21,7 @@ import stirling.software.SPDF.controller.api.pipeline.UserServiceInterface;
|
||||||
import stirling.software.SPDF.model.Authority;
|
import stirling.software.SPDF.model.Authority;
|
||||||
import stirling.software.SPDF.model.Role;
|
import stirling.software.SPDF.model.Role;
|
||||||
import stirling.software.SPDF.model.User;
|
import stirling.software.SPDF.model.User;
|
||||||
|
import stirling.software.SPDF.repository.AuthorityRepository;
|
||||||
import stirling.software.SPDF.repository.UserRepository;
|
import stirling.software.SPDF.repository.UserRepository;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
@ -28,6 +29,8 @@ public class UserService implements UserServiceInterface {
|
||||||
|
|
||||||
@Autowired private UserRepository userRepository;
|
@Autowired private UserRepository userRepository;
|
||||||
|
|
||||||
|
@Autowired private AuthorityRepository authorityRepository;
|
||||||
|
|
||||||
@Autowired private PasswordEncoder passwordEncoder;
|
@Autowired private PasswordEncoder passwordEncoder;
|
||||||
|
|
||||||
// Handle OAUTH2 login and user auto creation.
|
// Handle OAUTH2 login and user auto creation.
|
||||||
|
@ -202,6 +205,10 @@ public class UserService implements UserServiceInterface {
|
||||||
return userRepository.findByUsernameIgnoreCase(username);
|
return userRepository.findByUsernameIgnoreCase(username);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Authority findRole(User user) {
|
||||||
|
return authorityRepository.findByUserId(user.getId());
|
||||||
|
}
|
||||||
|
|
||||||
public void changeUsername(User user, String newUsername) {
|
public void changeUsername(User user, String newUsername) {
|
||||||
user.setUsername(newUsername);
|
user.setUsername(newUsername);
|
||||||
userRepository.save(user);
|
userRepository.save(user);
|
||||||
|
@ -217,6 +224,12 @@ public class UserService implements UserServiceInterface {
|
||||||
userRepository.save(user);
|
userRepository.save(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void changeRole(User user, String newRole) {
|
||||||
|
Authority userAuthority = this.findRole(user);
|
||||||
|
userAuthority.setAuthority(newRole);
|
||||||
|
authorityRepository.save(userAuthority);
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isPasswordCorrect(User user, String currentPassword) {
|
public boolean isPasswordCorrect(User user, String currentPassword) {
|
||||||
return passwordEncoder.matches(currentPassword, user.getPassword());
|
return passwordEncoder.matches(currentPassword, user.getPassword());
|
||||||
}
|
}
|
||||||
|
|
|
@ -227,6 +227,45 @@ public class UserController {
|
||||||
return new RedirectView("/addUsers"); // Redirect to account page after adding the user
|
return new RedirectView("/addUsers"); // Redirect to account page after adding the user
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PreAuthorize("hasRole('ROLE_ADMIN')")
|
||||||
|
@PostMapping("/admin/changeRole")
|
||||||
|
public RedirectView changeRole(
|
||||||
|
@RequestParam(name = "username") String username,
|
||||||
|
@RequestParam(name = "role") String role,
|
||||||
|
Authentication authentication) {
|
||||||
|
|
||||||
|
Optional<User> userOpt = userService.findByUsernameIgnoreCase(username);
|
||||||
|
|
||||||
|
if (!userOpt.isPresent()) {
|
||||||
|
return new RedirectView("/addUsers?messageType=userNotFound");
|
||||||
|
}
|
||||||
|
if (!userService.usernameExistsIgnoreCase(username)) {
|
||||||
|
return new RedirectView("/addUsers?messageType=userNotFound");
|
||||||
|
}
|
||||||
|
// Get the currently authenticated username
|
||||||
|
String currentUsername = authentication.getName();
|
||||||
|
|
||||||
|
// Check if the provided username matches the current session's username
|
||||||
|
if (currentUsername.equalsIgnoreCase(username)) {
|
||||||
|
return new RedirectView("/addUsers?messageType=downgradeCurrentUser");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
// Validate the role
|
||||||
|
Role roleEnum = Role.fromString(role);
|
||||||
|
if (roleEnum == Role.INTERNAL_API_USER) {
|
||||||
|
// If the role is INTERNAL_API_USER, reject the request
|
||||||
|
return new RedirectView("/addUsers?messageType=invalidRole");
|
||||||
|
}
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
// If the role ID is not valid, redirect with an error message
|
||||||
|
return new RedirectView("/addUsers?messageType=invalidRole");
|
||||||
|
}
|
||||||
|
User user = userOpt.get();
|
||||||
|
|
||||||
|
userService.changeRole(user, role);
|
||||||
|
return new RedirectView("/addUsers"); // Redirect to account page after adding the user
|
||||||
|
}
|
||||||
|
|
||||||
@PreAuthorize("hasRole('ROLE_ADMIN')")
|
@PreAuthorize("hasRole('ROLE_ADMIN')")
|
||||||
@PostMapping("/admin/deleteUser/{username}")
|
@PostMapping("/admin/deleteUser/{username}")
|
||||||
public RedirectView deleteUser(
|
public RedirectView deleteUser(
|
||||||
|
|
|
@ -9,4 +9,7 @@ import stirling.software.SPDF.model.Authority;
|
||||||
public interface AuthorityRepository extends JpaRepository<Authority, Long> {
|
public interface AuthorityRepository extends JpaRepository<Authority, Long> {
|
||||||
// Set<Authority> findByUsername(String username);
|
// Set<Authority> findByUsername(String username);
|
||||||
Set<Authority> findByUser_Username(String username);
|
Set<Authority> findByUser_Username(String username);
|
||||||
|
|
||||||
|
Authority findByUserId(long user_id);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=New Username already exists.
|
||||||
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
||||||
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
||||||
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
||||||
|
downgradeCurrentUserMessage=لا يمكن خفض دور المستخدم الحالي
|
||||||
|
downgradeCurrentUserLongMessage=لا يمكن تخفيض دور المستخدم الحالي. وبالتالي، لن يظهر المستخدم الحالي.
|
||||||
error=Error
|
error=Error
|
||||||
oops=Oops!
|
oops=Oops!
|
||||||
help=Help
|
help=Help
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Demo User (No custom settings)
|
||||||
adminUserSettings.internalApiUser=Internal API User
|
adminUserSettings.internalApiUser=Internal API User
|
||||||
adminUserSettings.forceChange=Force user to change password on login
|
adminUserSettings.forceChange=Force user to change password on login
|
||||||
adminUserSettings.submit=Save User
|
adminUserSettings.submit=Save User
|
||||||
|
adminUserSettings.changeUserRole=تغيير دور المستخدم
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=Новият потребител вече съществ
|
||||||
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
||||||
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
||||||
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
||||||
|
downgradeCurrentUserMessage=Не може да се понижи ролята на текущия потребител
|
||||||
|
downgradeCurrentUserLongMessage=Не може да се понижи ролята на текущия потребител. Следователно текущият потребител няма да бъде показан.
|
||||||
error=Error
|
error=Error
|
||||||
oops=Oops!
|
oops=Oops!
|
||||||
help=Help
|
help=Help
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Demo User (No custom settings)
|
||||||
adminUserSettings.internalApiUser=Internal API User
|
adminUserSettings.internalApiUser=Internal API User
|
||||||
adminUserSettings.forceChange=Принудете потребителя да промени потребителското име/парола при влизане
|
adminUserSettings.forceChange=Принудете потребителя да промени потребителското име/парола при влизане
|
||||||
adminUserSettings.submit=Съхранете потребителя
|
adminUserSettings.submit=Съхранете потребителя
|
||||||
|
adminUserSettings.changeUserRole=Промяна на ролята на потребителя
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=New Username already exists.
|
||||||
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
||||||
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
||||||
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
||||||
|
downgradeCurrentUserMessage=No es pot reduir la funció de l'usuari actual
|
||||||
|
downgradeCurrentUserLongMessage=No es pot baixar la funció de l'usuari actual. Per tant, no es mostrarà l'usuari actual.
|
||||||
error=Error
|
error=Error
|
||||||
oops=Oops!
|
oops=Oops!
|
||||||
help=Help
|
help=Help
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Demo User (No custom settings)
|
||||||
adminUserSettings.internalApiUser=Internal API User
|
adminUserSettings.internalApiUser=Internal API User
|
||||||
adminUserSettings.forceChange=Force user to change password on login
|
adminUserSettings.forceChange=Force user to change password on login
|
||||||
adminUserSettings.submit=Desar Usuari
|
adminUserSettings.submit=Desar Usuari
|
||||||
|
adminUserSettings.changeUserRole=Canvia el rol de l'usuari
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=Neuer Benutzername existiert bereits.
|
||||||
invalidUsernameMessage=Ungültiger Benutzername. Der Benutzername darf nur Buchstaben und Zahlen enthalten.
|
invalidUsernameMessage=Ungültiger Benutzername. Der Benutzername darf nur Buchstaben und Zahlen enthalten.
|
||||||
deleteCurrentUserMessage=Der aktuell angemeldete Benutzer kann nicht gelöscht werden.
|
deleteCurrentUserMessage=Der aktuell angemeldete Benutzer kann nicht gelöscht werden.
|
||||||
deleteUsernameExistsMessage=Der Benutzername existiert nicht und kann nicht gelöscht werden.
|
deleteUsernameExistsMessage=Der Benutzername existiert nicht und kann nicht gelöscht werden.
|
||||||
|
downgradeCurrentUserMessage=Die Rolle des aktuellen Benutzers kann nicht herabgestuft werden
|
||||||
|
downgradeCurrentUserLongMessage=Die Rolle des aktuellen Benutzers kann nicht herabgestuft werden. Daher wird der aktuelle Benutzer nicht angezeigt.
|
||||||
error=Fehler
|
error=Fehler
|
||||||
oops=Hoppla!
|
oops=Hoppla!
|
||||||
help=Hilfe
|
help=Hilfe
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Demo-Benutzer (Keine benutzerdefinierten Einstellunge
|
||||||
adminUserSettings.internalApiUser=Interner API-Benutzer
|
adminUserSettings.internalApiUser=Interner API-Benutzer
|
||||||
adminUserSettings.forceChange=Benutzer dazu zwingen, Benutzernamen/Passwort bei der Anmeldung zu ändern
|
adminUserSettings.forceChange=Benutzer dazu zwingen, Benutzernamen/Passwort bei der Anmeldung zu ändern
|
||||||
adminUserSettings.submit=Benutzer speichern
|
adminUserSettings.submit=Benutzer speichern
|
||||||
|
adminUserSettings.changeUserRole=Benutzerrolle ändern
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=Το νέο όνομα χρήστη υπάρχει ήδη.
|
||||||
invalidUsernameMessage=Μη έγκυρο όνομα χρήστη, το όνομα χρήστη πρέπει να περιέχει μόνο αλφαβητικούς χαρακτήρες και αριθμούς.
|
invalidUsernameMessage=Μη έγκυρο όνομα χρήστη, το όνομα χρήστη πρέπει να περιέχει μόνο αλφαβητικούς χαρακτήρες και αριθμούς.
|
||||||
deleteCurrentUserMessage=Δεν είναι δυνατή η διαγραφή του τρέχοντος συνδεδεμένου χρήστη.
|
deleteCurrentUserMessage=Δεν είναι δυνατή η διαγραφή του τρέχοντος συνδεδεμένου χρήστη.
|
||||||
deleteUsernameExistsMessage=Το όνομα χρήστη δεν υπάρχει και δεν μπορεί να διαγραφεί.
|
deleteUsernameExistsMessage=Το όνομα χρήστη δεν υπάρχει και δεν μπορεί να διαγραφεί.
|
||||||
|
downgradeCurrentUserMessage=Δεν είναι δυνατή η υποβάθμιση του ρόλου του τρέχοντος χρήστη
|
||||||
|
downgradeCurrentUserLongMessage=Δεν είναι δυνατή η υποβάθμιση του ρόλου του τρέχοντος χρήστη. Ως εκ τούτου, ο τρέχων χρήστης δεν θα εμφανίζεται.
|
||||||
error=Σφάλμα
|
error=Σφάλμα
|
||||||
oops=Ωχ!
|
oops=Ωχ!
|
||||||
help=Βοήθεια
|
help=Βοήθεια
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Demo χρήστης (Χωρίς προσαρμοσμ
|
||||||
adminUserSettings.internalApiUser=Εσωτερικός API χρήστης
|
adminUserSettings.internalApiUser=Εσωτερικός API χρήστης
|
||||||
adminUserSettings.forceChange=Αναγκάστε τον χρήστη να αλλάξει το όνομα χρήστη/κωδικό πρόσβασης κατά τη σύνδεση
|
adminUserSettings.forceChange=Αναγκάστε τον χρήστη να αλλάξει το όνομα χρήστη/κωδικό πρόσβασης κατά τη σύνδεση
|
||||||
adminUserSettings.submit=Αποθήκευση Χρήστη
|
adminUserSettings.submit=Αποθήκευση Χρήστη
|
||||||
|
adminUserSettings.changeUserRole=Αλλαγή ρόλου χρήστη
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=New Username already exists.
|
||||||
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
||||||
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
||||||
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
||||||
|
downgradeCurrentUserMessage=Cannot downgrade current user's role
|
||||||
|
downgradeCurrentUserLongMessage=Cannot downgrade current user's role. Hence, current user will not be shown.
|
||||||
error=Error
|
error=Error
|
||||||
oops=Oops!
|
oops=Oops!
|
||||||
help=Help
|
help=Help
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Demo User (No custom settings)
|
||||||
adminUserSettings.internalApiUser=Internal API User
|
adminUserSettings.internalApiUser=Internal API User
|
||||||
adminUserSettings.forceChange=Force user to change password on login
|
adminUserSettings.forceChange=Force user to change password on login
|
||||||
adminUserSettings.submit=Save User
|
adminUserSettings.submit=Save User
|
||||||
|
adminUserSettings.changeUserRole=Change User's Role
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=New Username already exists.
|
||||||
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
||||||
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
||||||
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
||||||
|
downgradeCurrentUserMessage=Cannot downgrade current user's role
|
||||||
|
downgradeCurrentUserLongMessage=Cannot downgrade current user's role. Hence, current user will not be shown.
|
||||||
error=Error
|
error=Error
|
||||||
oops=Oops!
|
oops=Oops!
|
||||||
help=Help
|
help=Help
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Demo User (No custom settings)
|
||||||
adminUserSettings.internalApiUser=Internal API User
|
adminUserSettings.internalApiUser=Internal API User
|
||||||
adminUserSettings.forceChange=Force user to change password on login
|
adminUserSettings.forceChange=Force user to change password on login
|
||||||
adminUserSettings.submit=Save User
|
adminUserSettings.submit=Save User
|
||||||
|
adminUserSettings.changeUserRole=Change User's Role
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=El nuevo nombre de usuario está en uso.
|
||||||
invalidUsernameMessage=Nombre de usuario no válido, El nombre de ususario debe contener únicamente números y caracteres alfabéticos.
|
invalidUsernameMessage=Nombre de usuario no válido, El nombre de ususario debe contener únicamente números y caracteres alfabéticos.
|
||||||
deleteCurrentUserMessage=No puede eliminar el usuario que tiene la sesión actualmente en uso.
|
deleteCurrentUserMessage=No puede eliminar el usuario que tiene la sesión actualmente en uso.
|
||||||
deleteUsernameExistsMessage=El usuario no existe y no puede eliminarse.
|
deleteUsernameExistsMessage=El usuario no existe y no puede eliminarse.
|
||||||
|
downgradeCurrentUserMessage=No se puede degradar el rol del usuario actual
|
||||||
|
downgradeCurrentUserLongMessage=No se puede degradar el rol del usuario actual. Por lo tanto, el usuario actual no se mostrará.
|
||||||
error=Error
|
error=Error
|
||||||
oops=Ups!
|
oops=Ups!
|
||||||
help=Help
|
help=Help
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Usuario Demo (Sin ajustes personalizados)
|
||||||
adminUserSettings.internalApiUser=Usuario interno de API
|
adminUserSettings.internalApiUser=Usuario interno de API
|
||||||
adminUserSettings.forceChange=Forzar usuario a cambiar usuario/contraseña en el acceso
|
adminUserSettings.forceChange=Forzar usuario a cambiar usuario/contraseña en el acceso
|
||||||
adminUserSettings.submit=Guardar Usuario
|
adminUserSettings.submit=Guardar Usuario
|
||||||
|
adminUserSettings.changeUserRole=Cambiar rol de usuario
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=New Username already exists.
|
||||||
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
||||||
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
||||||
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
||||||
|
downgradeCurrentUserMessage=Ezin da uneko erabiltzailearen rola jaitsi
|
||||||
|
downgradeCurrentUserLongMessage=Ezin da uneko erabiltzailearen rola jaitsi. Beraz, oraingo erabiltzailea ez da erakutsiko.
|
||||||
error=Error
|
error=Error
|
||||||
oops=Oops!
|
oops=Oops!
|
||||||
help=Help
|
help=Help
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Demo User (No custom settings)
|
||||||
adminUserSettings.internalApiUser=Internal API User
|
adminUserSettings.internalApiUser=Internal API User
|
||||||
adminUserSettings.forceChange=Force user to change password on login
|
adminUserSettings.forceChange=Force user to change password on login
|
||||||
adminUserSettings.submit=Gorde Erabiltzailea
|
adminUserSettings.submit=Gorde Erabiltzailea
|
||||||
|
adminUserSettings.changeUserRole=Erabiltzailearen rola aldatu
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=Le nouveau nom d’utilisateur existe déjà.
|
||||||
invalidUsernameMessage=Nom d’utilisateur invalide, le nom d’utilisateur ne peut contenir que des chiffres et des lettres.
|
invalidUsernameMessage=Nom d’utilisateur invalide, le nom d’utilisateur ne peut contenir que des chiffres et des lettres.
|
||||||
deleteCurrentUserMessage=Impossible de supprimer l’utilisateur actuellement connecté.
|
deleteCurrentUserMessage=Impossible de supprimer l’utilisateur actuellement connecté.
|
||||||
deleteUsernameExistsMessage=Le nom d’utilisateur n’existe pas et ne peut pas être supprimé.
|
deleteUsernameExistsMessage=Le nom d’utilisateur n’existe pas et ne peut pas être supprimé.
|
||||||
|
downgradeCurrentUserMessage=Impossible de rétrograder le rôle de l'utilisateur actuel
|
||||||
|
downgradeCurrentUserLongMessage=Impossible de rétrograder le rôle de l'utilisateur actuel. Par conséquent, l'utilisateur actuel ne sera pas affiché.
|
||||||
error=Erreur
|
error=Erreur
|
||||||
oops=Oups !
|
oops=Oups !
|
||||||
help=Aide
|
help=Aide
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Demo User (Paramètres par défaut)
|
||||||
adminUserSettings.internalApiUser=Internal API User
|
adminUserSettings.internalApiUser=Internal API User
|
||||||
adminUserSettings.forceChange=Forcer l’utilisateur à changer son nom d’utilisateur/mot de passe lors de la connexion
|
adminUserSettings.forceChange=Forcer l’utilisateur à changer son nom d’utilisateur/mot de passe lors de la connexion
|
||||||
adminUserSettings.submit=Ajouter
|
adminUserSettings.submit=Ajouter
|
||||||
|
adminUserSettings.changeUserRole=Changer le rôle de l'utilisateur
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=नया उपयोगकर्ता नाम पह
|
||||||
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
||||||
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
||||||
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
||||||
|
downgradeCurrentUserMessage=मौजूदा यूज़र की भूमिका को डाउनग्रेड नहीं किया जा सकता
|
||||||
|
downgradeCurrentUserLongMessage=मौजूदा यूज़र की भूमिका को डाउनग्रेड नहीं किया जा सकता। इसलिए, वर्तमान उपयोगकर्ता को नहीं दिखाया जाएगा।
|
||||||
error=Error
|
error=Error
|
||||||
oops=Oops!
|
oops=Oops!
|
||||||
help=Help
|
help=Help
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Demo User (No custom settings)
|
||||||
adminUserSettings.internalApiUser=Internal API User
|
adminUserSettings.internalApiUser=Internal API User
|
||||||
adminUserSettings.forceChange=उपयोगकर्ता को लॉगिन पर उपयोगकर्ता नाम/पासवर्ड बदलने के लिए मजबूर करें
|
adminUserSettings.forceChange=उपयोगकर्ता को लॉगिन पर उपयोगकर्ता नाम/पासवर्ड बदलने के लिए मजबूर करें
|
||||||
adminUserSettings.submit=उपयोगकर्ता को सहेजें
|
adminUserSettings.submit=उपयोगकर्ता को सहेजें
|
||||||
|
adminUserSettings.changeUserRole=यूज़र की भूमिका बदलें
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=Az új felhasználónév már létezik.
|
||||||
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
||||||
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
||||||
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
||||||
|
downgradeCurrentUserMessage=A jelenlegi felhasználó szerepkörét nem lehet visszaminősíteni
|
||||||
|
downgradeCurrentUserLongMessage=Az aktuális felhasználó szerepkörét nem lehet visszaminősíteni. Ezért az aktuális felhasználó nem jelenik meg.
|
||||||
error=Error
|
error=Error
|
||||||
oops=Oops!
|
oops=Oops!
|
||||||
help=Help
|
help=Help
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Demo User (No custom settings)
|
||||||
adminUserSettings.internalApiUser=Internal API User
|
adminUserSettings.internalApiUser=Internal API User
|
||||||
adminUserSettings.forceChange=Kényszerítse a felhasználót a felhasználónév/jelszó megváltoztatására bejelentkezéskor
|
adminUserSettings.forceChange=Kényszerítse a felhasználót a felhasználónév/jelszó megváltoztatására bejelentkezéskor
|
||||||
adminUserSettings.submit=Felhasználó mentése
|
adminUserSettings.submit=Felhasználó mentése
|
||||||
|
adminUserSettings.changeUserRole=Felhasználó szerepkörének módosítása
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=Nama pengguna baru sudah ada.
|
||||||
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
||||||
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
||||||
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
||||||
|
downgradeCurrentUserMessage=Tidak dapat menurunkan peran pengguna saat ini
|
||||||
|
downgradeCurrentUserLongMessage=Tidak dapat menurunkan peran pengguna saat ini. Oleh karena itu, pengguna saat ini tidak akan ditampilkan.
|
||||||
error=Error
|
error=Error
|
||||||
oops=Oops!
|
oops=Oops!
|
||||||
help=Help
|
help=Help
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Demo User (No custom settings)
|
||||||
adminUserSettings.internalApiUser=Internal API User
|
adminUserSettings.internalApiUser=Internal API User
|
||||||
adminUserSettings.forceChange=Memaksa pengguna untuk mengubah nama pengguna/kata sandi saat masuk
|
adminUserSettings.forceChange=Memaksa pengguna untuk mengubah nama pengguna/kata sandi saat masuk
|
||||||
adminUserSettings.submit=Simpan Pengguna
|
adminUserSettings.submit=Simpan Pengguna
|
||||||
|
adminUserSettings.changeUserRole=Ubah Peran Pengguna
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=Il nuovo nome utente esiste già.
|
||||||
invalidUsernameMessage=Nome utente non valido, il nome utente deve contenere solo caratteri alfabetici e numeri.
|
invalidUsernameMessage=Nome utente non valido, il nome utente deve contenere solo caratteri alfabetici e numeri.
|
||||||
deleteCurrentUserMessage=Impossibile eliminare l'utente attualmente connesso.
|
deleteCurrentUserMessage=Impossibile eliminare l'utente attualmente connesso.
|
||||||
deleteUsernameExistsMessage=Il nome utente non esiste e non può essere eliminato.
|
deleteUsernameExistsMessage=Il nome utente non esiste e non può essere eliminato.
|
||||||
|
downgradeCurrentUserMessage=Impossibile declassare il ruolo dell'utente corrente
|
||||||
|
downgradeCurrentUserLongMessage=Impossibile declassare il ruolo dell'utente corrente. Pertanto, l'utente corrente non verrà visualizzato.
|
||||||
error=Errore
|
error=Errore
|
||||||
oops=Oops!
|
oops=Oops!
|
||||||
help=Aiuto
|
help=Aiuto
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Utente demo (nessuna impostazione personalizzata)
|
||||||
adminUserSettings.internalApiUser=API utente interna
|
adminUserSettings.internalApiUser=API utente interna
|
||||||
adminUserSettings.forceChange=Forza l'utente a cambiare nome username/password all'accesso
|
adminUserSettings.forceChange=Forza l'utente a cambiare nome username/password all'accesso
|
||||||
adminUserSettings.submit=Salva utente
|
adminUserSettings.submit=Salva utente
|
||||||
|
adminUserSettings.changeUserRole=Cambia il ruolo dell'utente
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=新しいユーザー名はすでに存在します。
|
||||||
invalidUsernameMessage=ユーザー名が無効です。ユーザー名にはアルファベットと数字のみを使用してください。
|
invalidUsernameMessage=ユーザー名が無効です。ユーザー名にはアルファベットと数字のみを使用してください。
|
||||||
deleteCurrentUserMessage=現在ログインしているユーザーは削除できません。
|
deleteCurrentUserMessage=現在ログインしているユーザーは削除できません。
|
||||||
deleteUsernameExistsMessage=そのユーザー名は存在しないため削除できません。
|
deleteUsernameExistsMessage=そのユーザー名は存在しないため削除できません。
|
||||||
|
downgradeCurrentUserMessage=現在のユーザーの役割をダウングレードできません
|
||||||
|
downgradeCurrentUserLongMessage=現在のユーザーの役割をダウングレードできません。したがって、現在のユーザーは表示されません。
|
||||||
error=エラー
|
error=エラー
|
||||||
oops=おっと!
|
oops=おっと!
|
||||||
help=ヘルプ
|
help=ヘルプ
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=デモユーザー (カスタム設定なし)
|
||||||
adminUserSettings.internalApiUser=内部APIユーザー
|
adminUserSettings.internalApiUser=内部APIユーザー
|
||||||
adminUserSettings.forceChange=ログイン時にユーザー名/パスワードを強制的に変更する
|
adminUserSettings.forceChange=ログイン時にユーザー名/パスワードを強制的に変更する
|
||||||
adminUserSettings.submit=ユーザーの保存
|
adminUserSettings.submit=ユーザーの保存
|
||||||
|
adminUserSettings.changeUserRole=ユーザーの役割を変更する
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=새 사용자명이 이미 존재합니다.
|
||||||
invalidUsernameMessage=사용자 이름이 잘못되었습니다. 사용자 이름에는 알파벳 문자와 숫자만 포함되어야 합니다.
|
invalidUsernameMessage=사용자 이름이 잘못되었습니다. 사용자 이름에는 알파벳 문자와 숫자만 포함되어야 합니다.
|
||||||
deleteCurrentUserMessage=현재 로그인한 사용자를 삭제할 수 없습니다.
|
deleteCurrentUserMessage=현재 로그인한 사용자를 삭제할 수 없습니다.
|
||||||
deleteUsernameExistsMessage=사용자 이름이 존재하지 않으며 삭제할 수 없습니다.
|
deleteUsernameExistsMessage=사용자 이름이 존재하지 않으며 삭제할 수 없습니다.
|
||||||
|
downgradeCurrentUserMessage=현재 사용자의 역할을 다운그레이드할 수 없습니다
|
||||||
|
downgradeCurrentUserLongMessage=현재 사용자의 역할을 다운그레이드할 수 없습니다. 따라서 현재 사용자는 표시되지 않습니다.
|
||||||
error=오류
|
error=오류
|
||||||
oops=어머나!
|
oops=어머나!
|
||||||
help=도움말
|
help=도움말
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=데모 사용자(사용자 지정 설정 없음)
|
||||||
adminUserSettings.internalApiUser=내부 API 사용자
|
adminUserSettings.internalApiUser=내부 API 사용자
|
||||||
adminUserSettings.forceChange=다음 로그인 때 사용자명과 비밀번호를 변경하도록 강제
|
adminUserSettings.forceChange=다음 로그인 때 사용자명과 비밀번호를 변경하도록 강제
|
||||||
adminUserSettings.submit=사용자 저장
|
adminUserSettings.submit=사용자 저장
|
||||||
|
adminUserSettings.changeUserRole=사용자의 역할 변경
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=Nieuwe gebruikersnaam bestaat al.
|
||||||
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
||||||
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
||||||
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
||||||
|
downgradeCurrentUserMessage=Kan de rol van de huidige gebruiker niet downgraden
|
||||||
|
downgradeCurrentUserLongMessage=Kan de rol van de huidige gebruiker niet downgraden. Huidige gebruiker wordt dus niet weergegeven.
|
||||||
error=Error
|
error=Error
|
||||||
oops=Oops!
|
oops=Oops!
|
||||||
help=Help
|
help=Help
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Demogebruiker (geen aangepaste instellingen)
|
||||||
adminUserSettings.internalApiUser=Internal API User
|
adminUserSettings.internalApiUser=Internal API User
|
||||||
adminUserSettings.forceChange=Forceer gebruiker om gebruikersnaam/wachtwoord te wijzigen bij inloggen
|
adminUserSettings.forceChange=Forceer gebruiker om gebruikersnaam/wachtwoord te wijzigen bij inloggen
|
||||||
adminUserSettings.submit=Gebruiker opslaan
|
adminUserSettings.submit=Gebruiker opslaan
|
||||||
|
adminUserSettings.changeUserRole=De rol van de gebruiker wijzigen
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=New Username already exists.
|
||||||
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
||||||
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
||||||
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
||||||
|
downgradeCurrentUserMessage=Nie można obniżyć roli bieżącego użytkownika
|
||||||
|
downgradeCurrentUserLongMessage=Nie można obniżyć roli bieżącego użytkownika. W związku z tym bieżący użytkownik nie zostanie wyświetlony.
|
||||||
error=Error
|
error=Error
|
||||||
oops=Oops!
|
oops=Oops!
|
||||||
help=Help
|
help=Help
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Demo User (No custom settings)
|
||||||
adminUserSettings.internalApiUser=Internal API User
|
adminUserSettings.internalApiUser=Internal API User
|
||||||
adminUserSettings.forceChange=Force user to change password on login
|
adminUserSettings.forceChange=Force user to change password on login
|
||||||
adminUserSettings.submit=Save User
|
adminUserSettings.submit=Save User
|
||||||
|
adminUserSettings.changeUserRole=Zmień rolę użytkownika
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=New Username already exists.
|
||||||
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
||||||
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
||||||
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
||||||
|
downgradeCurrentUserMessage=Não é possível fazer downgrade da função do usuário atual
|
||||||
|
downgradeCurrentUserLongMessage=Não é possível fazer downgrade da função do usuário atual. Portanto, o usuário atual não será mostrado.
|
||||||
error=Error
|
error=Error
|
||||||
oops=Oops!
|
oops=Oops!
|
||||||
help=Help
|
help=Help
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Demo User (No custom settings)
|
||||||
adminUserSettings.internalApiUser=Internal API User
|
adminUserSettings.internalApiUser=Internal API User
|
||||||
adminUserSettings.forceChange=Force user to change password on login
|
adminUserSettings.forceChange=Force user to change password on login
|
||||||
adminUserSettings.submit=Save User
|
adminUserSettings.submit=Save User
|
||||||
|
adminUserSettings.changeUserRole=Alterar Função de Usuário
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=Esse utilizador já existe.
|
||||||
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
||||||
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
||||||
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
||||||
|
downgradeCurrentUserMessage=Não é possível fazer downgrade da função do utilizador atual
|
||||||
|
downgradeCurrentUserLongMessage=Não é possível fazer downgrade da função do utilizador atual. Portanto, o utilizador atual não será mostrado.
|
||||||
error=Error
|
error=Error
|
||||||
oops=Oops!
|
oops=Oops!
|
||||||
help=Help
|
help=Help
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Demo User (No custom settings)
|
||||||
adminUserSettings.internalApiUser=Internal API User
|
adminUserSettings.internalApiUser=Internal API User
|
||||||
adminUserSettings.forceChange=Force user to change password on login
|
adminUserSettings.forceChange=Force user to change password on login
|
||||||
adminUserSettings.submit=Save User
|
adminUserSettings.submit=Save User
|
||||||
|
adminUserSettings.changeUserRole=Alterar usuário
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=New Username already exists.
|
||||||
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
||||||
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
||||||
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
||||||
|
downgradeCurrentUserMessage=Rolul utilizatorului curent nu poate fi retrogradat
|
||||||
|
downgradeCurrentUserLongMessage=Rolul utilizatorului curent nu poate fi retrogradat. Prin urmare, utilizatorul curent nu va fi afișat.
|
||||||
error=Error
|
error=Error
|
||||||
oops=Oops!
|
oops=Oops!
|
||||||
help=Help
|
help=Help
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Demo User (No custom settings)
|
||||||
adminUserSettings.internalApiUser=Internal API User
|
adminUserSettings.internalApiUser=Internal API User
|
||||||
adminUserSettings.forceChange=Force user to change password on login
|
adminUserSettings.forceChange=Force user to change password on login
|
||||||
adminUserSettings.submit=Save User
|
adminUserSettings.submit=Save User
|
||||||
|
adminUserSettings.changeUserRole=Schimbați rolul utilizatorului
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=Новое имя пользователя уже суще
|
||||||
invalidUsernameMessage=Недопустимое имя пользователя, Имя пользователя должно содержать только буквы алфавита и цифры.
|
invalidUsernameMessage=Недопустимое имя пользователя, Имя пользователя должно содержать только буквы алфавита и цифры.
|
||||||
deleteCurrentUserMessage=Невозможно удалить пользователя, вошедшего в систему.
|
deleteCurrentUserMessage=Невозможно удалить пользователя, вошедшего в систему.
|
||||||
deleteUsernameExistsMessage=Имя пользователя не существует и не может быть удалено.
|
deleteUsernameExistsMessage=Имя пользователя не существует и не может быть удалено.
|
||||||
|
downgradeCurrentUserMessage=Невозможно понизить роль текущего пользователя
|
||||||
|
downgradeCurrentUserLongMessage=Невозможно понизить роль текущего пользователя. Следовательно, текущий пользователь не будет отображаться.
|
||||||
error=Ошибка
|
error=Ошибка
|
||||||
oops=Ой!
|
oops=Ой!
|
||||||
help=Помощь
|
help=Помощь
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Демо-пользователь (без настр
|
||||||
adminUserSettings.internalApiUser=Внутренний пользователь API
|
adminUserSettings.internalApiUser=Внутренний пользователь API
|
||||||
adminUserSettings.forceChange=Просить пользователя изменить пароль при входе в систему
|
adminUserSettings.forceChange=Просить пользователя изменить пароль при входе в систему
|
||||||
adminUserSettings.submit=Сохранить пользователя
|
adminUserSettings.submit=Сохранить пользователя
|
||||||
|
adminUserSettings.changeUserRole=Изменить роль пользователя
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=Novi korisnik već postoji
|
||||||
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
||||||
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
||||||
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
||||||
|
downgradeCurrentUserMessage=Nije moguće degradirati ulogu trenutnog korisnika
|
||||||
|
downgradeCurrentUserLongMessage=Nije moguće unazaditi ulogu trenutnog korisnika. Dakle, trenutni korisnik neće biti prikazan.
|
||||||
error=Error
|
error=Error
|
||||||
oops=Oops!
|
oops=Oops!
|
||||||
help=Help
|
help=Help
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Demo korisnik (Bez prilagođenih podešavanja)
|
||||||
adminUserSettings.internalApiUser=Internal API User
|
adminUserSettings.internalApiUser=Internal API User
|
||||||
adminUserSettings.forceChange=Prisili korisnika da promeni korisničko ime/lozinku pri prijavi
|
adminUserSettings.forceChange=Prisili korisnika da promeni korisničko ime/lozinku pri prijavi
|
||||||
adminUserSettings.submit=Sačuvaj korisnika
|
adminUserSettings.submit=Sačuvaj korisnika
|
||||||
|
adminUserSettings.changeUserRole=Promenite ulogu korisnika
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=New Username already exists.
|
||||||
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
invalidUsernameMessage=Invalid username, Username must only contain alphabet characters and numbers.
|
||||||
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
deleteCurrentUserMessage=Cannot delete currently logged in user.
|
||||||
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
|
||||||
|
downgradeCurrentUserMessage=Kan inte nedgradera nuvarande användares roll
|
||||||
|
downgradeCurrentUserLongMessage=Kan inte nedgradera nuvarande användares roll. Därför kommer den aktuella användaren inte att visas.
|
||||||
error=Error
|
error=Error
|
||||||
oops=Oops!
|
oops=Oops!
|
||||||
help=Help
|
help=Help
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Demo User (No custom settings)
|
||||||
adminUserSettings.internalApiUser=Internal API User
|
adminUserSettings.internalApiUser=Internal API User
|
||||||
adminUserSettings.forceChange=Force user to change password on login
|
adminUserSettings.forceChange=Force user to change password on login
|
||||||
adminUserSettings.submit=Save User
|
adminUserSettings.submit=Save User
|
||||||
|
adminUserSettings.changeUserRole=Ändra användarens roll
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=Yeni Kullanıcı Adı zaten var.
|
||||||
invalidUsernameMessage=Geçersiz kullanıcı adı, Kullanıcı adı yalnızca alfabe karakterleri ve sayılar içermelidir.
|
invalidUsernameMessage=Geçersiz kullanıcı adı, Kullanıcı adı yalnızca alfabe karakterleri ve sayılar içermelidir.
|
||||||
deleteCurrentUserMessage=Şu anda oturum açmış olan kullanıcı silinemiyor.
|
deleteCurrentUserMessage=Şu anda oturum açmış olan kullanıcı silinemiyor.
|
||||||
deleteUsernameExistsMessage=Kullanıcı adı mevcut değil ve silinemez.
|
deleteUsernameExistsMessage=Kullanıcı adı mevcut değil ve silinemez.
|
||||||
|
downgradeCurrentUserMessage=Mevcut kullanıcının rolü düşürülemiyor
|
||||||
|
downgradeCurrentUserLongMessage=Mevcut kullanıcının rolü düşürülemiyor. Bu nedenle, mevcut kullanıcı gösterilmeyecektir.
|
||||||
error=Hata
|
error=Hata
|
||||||
oops=Tüh!
|
oops=Tüh!
|
||||||
help=Yardım
|
help=Yardım
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Demo Kullanıcısı (Özel ayar yok)
|
||||||
adminUserSettings.internalApiUser=Dahili API Kullanıcısı
|
adminUserSettings.internalApiUser=Dahili API Kullanıcısı
|
||||||
adminUserSettings.forceChange=Kullanıcının girişte kullanıcı adı/şifre değiştirmesini zorla
|
adminUserSettings.forceChange=Kullanıcının girişte kullanıcı adı/şifre değiştirmesini zorla
|
||||||
adminUserSettings.submit=Kullanıcıyı Kaydet
|
adminUserSettings.submit=Kullanıcıyı Kaydet
|
||||||
|
adminUserSettings.changeUserRole=Kullanıcı rolünü değiştir
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=Нове ім'я користувача вже існує.
|
||||||
invalidUsernameMessage=Недійсне ім'я користувача, Ім'я користувача повинно містити тільки літери алфавіту та цифри.
|
invalidUsernameMessage=Недійсне ім'я користувача, Ім'я користувача повинно містити тільки літери алфавіту та цифри.
|
||||||
deleteCurrentUserMessage=Неможливо видалити користувача, який увійшов в систему.
|
deleteCurrentUserMessage=Неможливо видалити користувача, який увійшов в систему.
|
||||||
deleteUsernameExistsMessage=Ім'я користувача не існує і не може бути видалено.
|
deleteUsernameExistsMessage=Ім'я користувача не існує і не може бути видалено.
|
||||||
|
downgradeCurrentUserMessage=Неможливо понизити роль поточного користувача
|
||||||
|
downgradeCurrentUserLongMessage=Неможливо понизити роль поточного користувача. Отже, поточний користувач не відображатиметься.
|
||||||
error=Error
|
error=Error
|
||||||
oops=Oops!
|
oops=Oops!
|
||||||
help=Help
|
help=Help
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=Демо-користувач (без налашто
|
||||||
adminUserSettings.internalApiUser=Внутрішній користувач API
|
adminUserSettings.internalApiUser=Внутрішній користувач API
|
||||||
adminUserSettings.forceChange=Примусити користувача змінити пароль при вході в систему
|
adminUserSettings.forceChange=Примусити користувача змінити пароль при вході в систему
|
||||||
adminUserSettings.submit=Зберегти користувача
|
adminUserSettings.submit=Зберегти користувача
|
||||||
|
adminUserSettings.changeUserRole=Змінити роль користувача
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=新用户名已存在。
|
||||||
invalidUsernameMessage=用户名无效,用户名只能由字母字符和数字组成。
|
invalidUsernameMessage=用户名无效,用户名只能由字母字符和数字组成。
|
||||||
deleteCurrentUserMessage=无法删除当前登录的用户。
|
deleteCurrentUserMessage=无法删除当前登录的用户。
|
||||||
deleteUsernameExistsMessage=用户名不存在,无法删除。
|
deleteUsernameExistsMessage=用户名不存在,无法删除。
|
||||||
|
downgradeCurrentUserMessage=无法降级当前用户的角色
|
||||||
|
downgradeCurrentUserLongMessage=无法降级当前用户的角色。因此,当前用户将不会显示。
|
||||||
error=错误
|
error=错误
|
||||||
oops=哎呀!
|
oops=哎呀!
|
||||||
help=帮助
|
help=帮助
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=演示用户(无自定义设置)
|
||||||
adminUserSettings.internalApiUser=内部API用户
|
adminUserSettings.internalApiUser=内部API用户
|
||||||
adminUserSettings.forceChange=强制用户在登录时更改用户名/密码
|
adminUserSettings.forceChange=强制用户在登录时更改用户名/密码
|
||||||
adminUserSettings.submit=保存用户
|
adminUserSettings.submit=保存用户
|
||||||
|
adminUserSettings.changeUserRole=更改用户角色
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -57,6 +57,8 @@ usernameExistsMessage=新使用者名稱已存在。
|
||||||
invalidUsernameMessage=使用者名無效,使用者名只能包含字母字元和數位。
|
invalidUsernameMessage=使用者名無效,使用者名只能包含字母字元和數位。
|
||||||
deleteCurrentUserMessage=無法刪除目前登錄的使用者。
|
deleteCurrentUserMessage=無法刪除目前登錄的使用者。
|
||||||
deleteUsernameExistsMessage=使用者名不存在,無法刪除。
|
deleteUsernameExistsMessage=使用者名不存在,無法刪除。
|
||||||
|
downgradeCurrentUserMessage=無法降級目前使用者的角色
|
||||||
|
downgradeCurrentUserLongMessage=無法降級目前使用者的角色。因此,不會顯示目前的使用者。
|
||||||
error=錯誤
|
error=錯誤
|
||||||
oops=哎呀!
|
oops=哎呀!
|
||||||
help=幫助
|
help=幫助
|
||||||
|
@ -173,6 +175,7 @@ adminUserSettings.demoUser=示範用途的使用者(無自訂設定)
|
||||||
adminUserSettings.internalApiUser=內部 API 使用者
|
adminUserSettings.internalApiUser=內部 API 使用者
|
||||||
adminUserSettings.forceChange=強制使用者在登入時修改使用者名稱/密碼
|
adminUserSettings.forceChange=強制使用者在登入時修改使用者名稱/密碼
|
||||||
adminUserSettings.submit=儲存
|
adminUserSettings.submit=儲存
|
||||||
|
adminUserSettings.changeUserRole=更改使用者身份
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# HOME-PAGE #
|
# HOME-PAGE #
|
||||||
|
|
|
@ -58,6 +58,7 @@
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="role" th:text="#{adminUserSettings.role}">Role</label>
|
<label for="role" th:text="#{adminUserSettings.role}">Role</label>
|
||||||
<select name="role" class="form-control" required>
|
<select name="role" class="form-control" required>
|
||||||
|
<option value="" disabled selected th:text="#{selectFillter}">-- Select --</option>
|
||||||
<option th:each="roleDetail : ${roleDetails}" th:value="${roleDetail.key}" th:text="#{${roleDetail.value}}">Role</option>
|
<option th:each="roleDetail : ${roleDetails}" th:value="${roleDetail.key}" th:text="#{${roleDetail.value}}">Role</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
@ -66,6 +67,32 @@
|
||||||
<label class="form-check-label" for="forceChange" th:text="#{adminUserSettings.forceChange}">Force user to change username/password on login</label>
|
<label class="form-check-label" for="forceChange" th:text="#{adminUserSettings.forceChange}">Force user to change username/password on login</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Add other fields as required -->
|
||||||
|
<button type="submit" class="btn btn-primary" th:text="#{adminUserSettings.submit}">Save User</button>
|
||||||
|
</form>
|
||||||
|
<hr />
|
||||||
|
<h2 th:text="#{adminUserSettings.changeUserRole}">Change User's Role</h2>
|
||||||
|
<button class="btn btn-outline-info" data-toggle="tooltip" data-placement="auto" th:title="#{downgradeCurrentUserLongMessage}" th:text="#{help}">Help</button>
|
||||||
|
<div th:if="${param.messageType != null and param.messageType.size() > 0 and (param.messageType[0] == 'userNotFound' or param.messageType[0] == 'downgradeCurrentUser')}" class="alert alert-danger">
|
||||||
|
<span th:if="${param.messageType[0] == 'userNotFound'}" th:text="#{userNotFoundMessage}">Username not found</span>
|
||||||
|
<span th:if="${param.messageType[0] == 'downgradeCurrentUser'}" th:text="#{downgradeCurrentUserMessage}">Cannot downgrade current user's role</span>
|
||||||
|
</div>
|
||||||
|
<form action="/api/v1/user/admin/changeRole" method="post">
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="username" th:text="#{username}">Username</label>
|
||||||
|
<select name="username" class="form-control" required>
|
||||||
|
<option value="" disabled selected th:text="#{selectFillter}">-- Select --</option>
|
||||||
|
<option th:each="user : ${users}" th:if="${user.username != currentUsername}" th:value="${user.username}" th:text="${user.username}">Username</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="role" th:text="#{adminUserSettings.role}">Role</label>
|
||||||
|
<select name="role" class="form-control" required>
|
||||||
|
<option value="" disabled selected th:text="#{selectFillter}">-- Select --</option>
|
||||||
|
<option th:each="roleDetail : ${roleDetails}" th:value="${roleDetail.key}" th:text="#{${roleDetail.value}}">Role</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- Add other fields as required -->
|
<!-- Add other fields as required -->
|
||||||
<button type="submit" class="btn btn-primary" th:text="#{adminUserSettings.submit}">Save User</button>
|
<button type="submit" class="btn btn-primary" th:text="#{adminUserSettings.submit}">Save User</button>
|
||||||
</form>
|
</form>
|
||||||
|
@ -73,6 +100,11 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<script th:inline="javascript">
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('[data-toggle="tooltip"]').tooltip()
|
||||||
|
})
|
||||||
|
</script>
|
||||||
<th:block th:insert="~{fragments/footer.html :: footer}"></th:block>
|
<th:block th:insert="~{fragments/footer.html :: footer}"></th:block>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
Loading…
Reference in a new issue