G-1: 메신저 Webhook Relay + _send_to_room 실제 httpx 호출 구현 G-2: POST /api/tasks/bulk SR 대량작업 엔드포인트 (최대 100건) G-3: 라이선스 만료 알림 스케줄러 (매일 09:00 KST) G-4: 체험판 upgrade_banner 필드 + license.py 배너 로직 G-5: core/auto_rca.py + incidents/problem auto-rca 엔드포인트 G-6: core/deploy_impact.py + vibe impact-analysis 엔드포인트 G-7: core/ticket_classifier.py + SR 생성 시 AI 분류 + ai-suggestion API G-8: VulnPatchRecord 모델 + vuln_scan 패치추적 4개 엔드포인트 G-9: core/jira_sync.py + gateway Jira/Confluence 연동 엔드포인트 G-10: core/push_notify.py + routers/push.py + PushSubscription 모델 G-11: approvals 다중승인 (위임/서명/기한초과/마감연장) G-12: alembic.ini + migrations/ + cicd/migrate_to_postgres.sh 하네스: guardia-orchestrator 확장기능 Phase 반영 봇명령어: /sr /status /license /bulk 슬래시 명령어 추가 설치스크립트: setup/ (Ubuntu, CentOS, RHEL, Windows) --test 옵션 포함 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
167 lines
6.6 KiB
Plaintext
167 lines
6.6 KiB
Plaintext
<%@ page language="java" pageEncoding="EUC-KR"%>
|
|
<%@ include file="/jsp/include/commonVariable.jspf" %>
|
|
<html>
|
|
<head>
|
|
<script language="javascript" src="<%=contextPath %>/js/prototype.js"></script>
|
|
<script type="text/javascript">
|
|
function init() {
|
|
try {
|
|
$('memberName').focus();
|
|
} catch (e) {}
|
|
}
|
|
|
|
// 아이디 찾기..
|
|
function checkValueID()
|
|
{
|
|
var fm = document.findIDform;
|
|
var name = fm.memberName.value;
|
|
var email = fm.email.value;
|
|
if (name.length <= 0) {
|
|
alert('<bean:message key="msg.user.checkName"/>');
|
|
fm.memberName.focus();
|
|
return false;
|
|
}
|
|
|
|
if (email.length <= 0) {
|
|
alert('<bean:message key="msg.user.checkName"/>');
|
|
fm.email.focus();
|
|
return false;
|
|
}
|
|
|
|
fm.submit();
|
|
}
|
|
|
|
// 비밀번호 찾기..
|
|
function checkValuePW()
|
|
{
|
|
var fm = document.findPWform;
|
|
var name = fm.memberName.value;
|
|
var id = fm.memberID.value;
|
|
var email = fm.email.value;
|
|
if (name.length <= 0) {
|
|
alert('<bean:message key="msg.user.checkName"/>');
|
|
fm.memberName.focus();
|
|
return false;
|
|
}
|
|
|
|
if (id.length <= 0) {
|
|
alert('<bean:message key="msg.user.inputId"/>');
|
|
fm.memberID.focus();
|
|
return false;
|
|
}
|
|
|
|
if (email.length <= 0) {
|
|
alert('<bean:message key="msg.user.checkEmail"/>');
|
|
fm.email.focus();
|
|
return false;
|
|
}
|
|
|
|
fm.submit();
|
|
}
|
|
|
|
</script>
|
|
<%@ include file="/jsp/include/header.jspf" %>
|
|
<%@ include file="/jsp/include/css.jspf"%>
|
|
</head>
|
|
<body onload="init()">
|
|
|
|
<table width="680" border="0" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td width="25"> </td>
|
|
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td style="padding:10 0 0 0"><img src="<%=contextPath %>/images/user/ids_title00.gif"></td>
|
|
</tr>
|
|
<tr>
|
|
<td height="40" style="padding:15 0 0 5"><table width="100%" border="0" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td height="20"><img src="<%=contextPath %>/images/user/ids_title01.gif"></td>
|
|
</tr>
|
|
<tr>
|
|
<td><table width="608" border="0" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td><img src="<%=contextPath %>/images/user/ids_box01.gif" width="608" height="13"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center" background="<%=contextPath %>/images/user/ids_box02.gif" style="padding:10 0 10 0">
|
|
<form action="<%=contextPath %>/user/findId.do" name="findIDform" method="post">
|
|
<table width="580" border="0" cellpadding="0" cellspacing="0" bgcolor="f4f4f4">
|
|
|
|
<tr>
|
|
<td height="80" align="center"><table width="500" border="0" cellpadding="0" cellspacing="0">
|
|
<tr>
|
|
<td width="80" height="25"><img src="<%=contextPath %>/images/user/ids_tname.gif" alt="이름"></td>
|
|
<td width="270"><input type="text" name="memberName" style="width:130"></td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td height="25"><img src="<%=contextPath %>/images/user/ids_temail.gif" alt="이메일"></td>
|
|
<td><input type="text" name="email" style="width:250"></td>
|
|
<td><img src="<%=contextPath %>/images/user/ids_btnid.gif" onClick="checkValueID();false;" style="cursor:pointer"></td>
|
|
</tr>
|
|
</table></td>
|
|
</tr>
|
|
</table>
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><img src="<%=contextPath %>/images/user/ids_box03.gif" width="608" height="11"></td>
|
|
</tr>
|
|
</table></td>
|
|
</tr>
|
|
</table></td>
|
|
</tr>
|
|
<tr>
|
|
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td height="35" style="padding:15 0 0 5"><img src="<%=contextPath %>/images/user/ids_title02.gif" width="143" height="13"></td>
|
|
</tr>
|
|
<tr>
|
|
<td style="padding:0 0 0 5"><table width="608" border="0" cellspacing="0" cellpadding="0">
|
|
<tr>
|
|
<td><img src="<%=contextPath %>/images/user/ids_box01.gif" width="608" height="13"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center" background="<%=contextPath %>/images/user/ids_box02.gif" style="padding:10 0 10 0">
|
|
<table width="580" border="0" cellpadding="0" cellspacing="0" bgcolor="f4f4f4">
|
|
<form action="<%=contextPath %>/user/findPw.do" name="findPWform" method="post">
|
|
<tr>
|
|
<td height="100" align="center"><table width="500" border="0" cellpadding="0" cellspacing="0">
|
|
<tr>
|
|
<td width="80" height="25"><img src="<%=contextPath %>/images/user/ids_tname.gif" alt="이름"></td>
|
|
<td width="270"><input type="text" name="memberName" style="width:130"></td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td height="25"><img src="<%=contextPath %>/images/user/ids_tid.gif" alt="이름" width="58" height="12"></td>
|
|
<td><input type="text" name="memberID" style="width:130"></td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td height="25"><img src="<%=contextPath %>/images/user/ids_temail.gif" alt="이메일"></td>
|
|
<td><input type="text" name="email" style="width:250"></td>
|
|
<td><img src="<%=contextPath %>/images/user/ids_btnpw.gif" onClick="checkValuePW();" style="cursor:pointer"></td>
|
|
</tr>
|
|
</table></td>
|
|
</tr>
|
|
</form>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><img src="<%=contextPath %>/images/user/ids_box03.gif" width="608" height="11"></td>
|
|
</tr>
|
|
</table></td>
|
|
</tr>
|
|
</table></td>
|
|
</tr>
|
|
<tr>
|
|
<td height="70"> </td>
|
|
</tr>
|
|
</table></td>
|
|
</tr>
|
|
</table>
|
|
|
|
</body>
|
|
</html> |