mirror of
https://github.com/nagisa77/OpenIsle.git
synced 2026-02-07 07:30:54 +08:00
37 lines
1.3 KiB
Java
37 lines
1.3 KiB
Java
package com.openisle.config;
|
|
|
|
import com.openisle.model.Role;
|
|
import com.openisle.model.User;
|
|
import com.openisle.repository.UserRepository;
|
|
import lombok.RequiredArgsConstructor;
|
|
import org.springframework.boot.CommandLineRunner;
|
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
/**
|
|
* Ensure a dedicated "system" user exists for internal operations.
|
|
*/
|
|
@Component
|
|
@RequiredArgsConstructor
|
|
public class SystemUserInitializer implements CommandLineRunner {
|
|
private final UserRepository userRepository;
|
|
private final PasswordEncoder passwordEncoder;
|
|
|
|
@Override
|
|
public void run(String... args) {
|
|
userRepository.findByUsername("system").orElseGet(() -> {
|
|
User system = new User();
|
|
system.setUsername("system");
|
|
system.setEmail("system@openisle.local");
|
|
// todo(tim): raw password 采用环境变量
|
|
system.setPassword(passwordEncoder.encode("system"));
|
|
system.setRole(Role.USER);
|
|
system.setVerified(true);
|
|
system.setApproved(true);
|
|
system.setAvatar("https://openisle-1307107697.cos.ap-guangzhou.myqcloud.com/assert/image.png");
|
|
return userRepository.save(system);
|
|
});
|
|
}
|
|
}
|
|
|