From cdd0a62e5ae897c1e8a0ad1a4c5417c4f3d0a374 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EB=8F=99=ED=9B=88?= <2dh2@naver.com> Date: Thu, 22 Jan 2026 23:18:38 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=9C=A0=EC=A0=80=20=ED=85=8C=EC=9D=B4?= =?UTF-8?q?=EB=B8=94=EC=97=90=20role=20=EC=BB=AC=EB=9F=BC=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/gg/agit/konect/domain/user/enums/UserRole.java | 6 ++++++ src/main/java/gg/agit/konect/domain/user/model/User.java | 7 +++++++ .../db/migration/V14__add_role_to_users_table.sql | 9 +++++++++ 3 files changed, 22 insertions(+) create mode 100644 src/main/java/gg/agit/konect/domain/user/enums/UserRole.java create mode 100644 src/main/resources/db/migration/V14__add_role_to_users_table.sql diff --git a/src/main/java/gg/agit/konect/domain/user/enums/UserRole.java b/src/main/java/gg/agit/konect/domain/user/enums/UserRole.java new file mode 100644 index 00000000..7cb86433 --- /dev/null +++ b/src/main/java/gg/agit/konect/domain/user/enums/UserRole.java @@ -0,0 +1,6 @@ +package gg.agit.konect.domain.user.enums; + +public enum UserRole { + USER, + ADMIN +} diff --git a/src/main/java/gg/agit/konect/domain/user/model/User.java b/src/main/java/gg/agit/konect/domain/user/model/User.java index 2b675dac..5ff78d5c 100644 --- a/src/main/java/gg/agit/konect/domain/user/model/User.java +++ b/src/main/java/gg/agit/konect/domain/user/model/User.java @@ -6,6 +6,7 @@ import gg.agit.konect.domain.university.model.University; import gg.agit.konect.domain.user.enums.Provider; +import gg.agit.konect.domain.user.enums.UserRole; import gg.agit.konect.global.model.BaseEntity; import jakarta.persistence.Column; import jakarta.persistence.Entity; @@ -76,6 +77,10 @@ public class User extends BaseEntity { @Column(name = "provider_id", length = 255) private String providerId; + @Column(name = "role", length = 20, nullable = false) + @Enumerated(EnumType.STRING) + private UserRole role; + @Column(name = "is_marketing_agreement", nullable = false) private Boolean isMarketingAgreement; @@ -92,6 +97,7 @@ private User( String studentNumber, Provider provider, String providerId, + UserRole role, Boolean isMarketingAgreement, String imageUrl ) { @@ -103,6 +109,7 @@ private User( this.studentNumber = studentNumber; this.provider = provider; this.providerId = providerId; + this.role = role == null ? UserRole.USER : role; this.isMarketingAgreement = isMarketingAgreement; this.imageUrl = imageUrl; } diff --git a/src/main/resources/db/migration/V14__add_role_to_users_table.sql b/src/main/resources/db/migration/V14__add_role_to_users_table.sql new file mode 100644 index 00000000..bcf71043 --- /dev/null +++ b/src/main/resources/db/migration/V14__add_role_to_users_table.sql @@ -0,0 +1,9 @@ +ALTER TABLE users + ADD COLUMN role VARCHAR(20) NULL AFTER provider_id; + +UPDATE users +SET role = 'USER' +WHERE role IS NULL; + +ALTER TABLE users + MODIFY COLUMN role VARCHAR(20) NOT NULL DEFAULT 'USER';