url link 저장 및 변경 관리 계정에서 할수 있도록 추가
All checks were successful
Build And Test / build-and-push (push) Successful in 4m8s
All checks were successful
Build And Test / build-and-push (push) Successful in 4m8s
This commit is contained in:
@ -12,14 +12,32 @@ class CustomUserAdmin(UserAdmin):
|
||||
# 사용자 필드 구성
|
||||
fieldsets = (
|
||||
(None, {'fields': ('username', 'password')}),
|
||||
('Personal Info', {'fields': ('email', 'encrypted_private_key')}),
|
||||
('Personal Info', {
|
||||
'fields': (
|
||||
'email',
|
||||
'encrypted_private_key',
|
||||
'nhnc_id',
|
||||
'nhnc_api_tenant_id',
|
||||
'url_gitea',
|
||||
'url_harbor',
|
||||
'url_argocd',
|
||||
'url_web_ide',
|
||||
'url_rancher',
|
||||
'url_grafana',
|
||||
'url_prometheus',
|
||||
'url_opensearch',
|
||||
'url_kiali',
|
||||
'url_nexus',
|
||||
'url_mattermost',
|
||||
)
|
||||
}),
|
||||
('Permissions', {'fields': ('is_staff', 'is_active')}),
|
||||
)
|
||||
|
||||
# 읽기 전용 필드 추가
|
||||
readonly_fields = ('encrypted_private_key',)
|
||||
|
||||
search_fields = ('username', 'email')
|
||||
search_fields = ('username', 'email', 'nhnc_id', 'nhnc_api_tenant_id')
|
||||
ordering = ('username',)
|
||||
|
||||
|
||||
|
@ -23,7 +23,22 @@ class CustomUserChangeForm(UserChangeForm):
|
||||
|
||||
class Meta:
|
||||
model = CustomUser
|
||||
fields = ["email", "nhnc_id", "nhnc_api_tenant_id"]
|
||||
fields = [
|
||||
'email',
|
||||
'nhnc_id',
|
||||
'nhnc_api_tenant_id',
|
||||
'url_gitea',
|
||||
'url_harbor',
|
||||
'url_argocd',
|
||||
'url_web_ide',
|
||||
'url_rancher',
|
||||
'url_grafana',
|
||||
'url_prometheus',
|
||||
'url_opensearch',
|
||||
'url_kiali',
|
||||
'url_nexus',
|
||||
'url_mattermost',
|
||||
]
|
||||
|
||||
def clean(self):
|
||||
cleaned_data = super().clean()
|
||||
|
@ -0,0 +1,58 @@
|
||||
# Generated by Django 4.2.14 on 2025-01-25 00:49
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('custom_auth', '0005_customuser_encrypted_private_key'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='customuser',
|
||||
name='url_argocd',
|
||||
field=models.URLField(blank=True, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customuser',
|
||||
name='url_gitea',
|
||||
field=models.URLField(blank=True, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customuser',
|
||||
name='url_grafana',
|
||||
field=models.URLField(blank=True, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customuser',
|
||||
name='url_harbor',
|
||||
field=models.URLField(blank=True, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customuser',
|
||||
name='url_kiali',
|
||||
field=models.URLField(blank=True, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customuser',
|
||||
name='url_opensearch',
|
||||
field=models.URLField(blank=True, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customuser',
|
||||
name='url_prometheus',
|
||||
field=models.URLField(blank=True, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customuser',
|
||||
name='url_rancher',
|
||||
field=models.URLField(blank=True, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customuser',
|
||||
name='url_web_ide',
|
||||
field=models.URLField(blank=True, null=True),
|
||||
),
|
||||
]
|
@ -0,0 +1,23 @@
|
||||
# Generated by Django 4.2.14 on 2025-01-25 01:20
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('custom_auth', '0006_customuser_url_argocd_customuser_url_gitea_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='customuser',
|
||||
name='url_mattermost',
|
||||
field=models.URLField(blank=True, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customuser',
|
||||
name='url_nexus',
|
||||
field=models.URLField(blank=True, null=True),
|
||||
),
|
||||
]
|
@ -5,15 +5,29 @@ from cryptography.fernet import Fernet
|
||||
|
||||
|
||||
class CustomUser(AbstractUser):
|
||||
"""사용자 모델 - 기존 필드 + SSH Private Key 관리 필드"""
|
||||
|
||||
# 기존 필드 유지
|
||||
# 사용자 모델 - 기존 필드 + SSH Private Key 관리 필드
|
||||
grade = models.CharField(max_length=50, blank=True, null=True)
|
||||
nhnc_id = models.CharField(max_length=100, blank=True, null=True)
|
||||
nhnc_api_tenant_id = models.CharField(max_length=100, blank=True, null=True)
|
||||
|
||||
"""사용자 모델 - SSH Private Key 관리 필드"""
|
||||
# 사용자 모델 - SSH Private Key 관리 필드
|
||||
encrypted_private_key = models.BinaryField(blank=True, null=True) # 암호화된 SSH 키
|
||||
|
||||
# Custom URL 필드 - 2025-01-25
|
||||
# 여기 추가하면 components/_nav.html 수정
|
||||
# custom_auth/forms.py 수정, custom_auth/views.py 수정
|
||||
url_gitea = models.URLField(max_length=200, blank=True, null=True)
|
||||
url_harbor = models.URLField(max_length=200, blank=True, null=True)
|
||||
url_argocd = models.URLField(max_length=200, blank=True, null=True)
|
||||
url_web_ide = models.URLField(max_length=200, blank=True, null=True)
|
||||
url_rancher = models.URLField(max_length=200, blank=True, null=True)
|
||||
url_grafana = models.URLField(max_length=200, blank=True, null=True)
|
||||
url_prometheus = models.URLField(max_length=200, blank=True, null=True)
|
||||
url_opensearch = models.URLField(max_length=200, blank=True, null=True)
|
||||
url_kiali = models.URLField(max_length=200, blank=True, null=True)
|
||||
url_nexus = models.URLField(max_length=200, blank=True, null=True)
|
||||
url_mattermost = models.URLField(max_length=200, blank=True, null=True)
|
||||
|
||||
|
||||
def encrypt_private_key(self, private_key: str) -> bytes:
|
||||
"""SSH Private Key 암호화"""
|
||||
|
Reference in New Issue
Block a user