요청자 : k5 김예희(EST)
업무일지 - 사용자목록 오름차순 정렬 ot목록 - 사용자목록 오름차순 정렬, ot시작,종료시간 추가
This commit is contained in:
@@ -4,7 +4,7 @@ using System.Linq;
|
||||
using System.Net;
|
||||
using System.Web.Http;
|
||||
using agi = HtmlAgilityPack;
|
||||
|
||||
using Project.Web.Model;
|
||||
|
||||
namespace Project.Web.Controllers
|
||||
{
|
||||
|
||||
@@ -1,299 +1,299 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using Newtonsoft.Json;
|
||||
using System.Collections.Generic;
|
||||
//using System;
|
||||
//using System.Linq;
|
||||
//using System.Net.Http;
|
||||
//using System.Web.Http;
|
||||
//using Newtonsoft.Json;
|
||||
//using System.Collections.Generic;
|
||||
|
||||
namespace Project.Web.Controllers
|
||||
{
|
||||
// 로그인 요청 모델
|
||||
public class LoginRequest
|
||||
{
|
||||
public string UserId { get; set; }
|
||||
public string Password { get; set; }
|
||||
public bool RememberMe { get; set; }
|
||||
}
|
||||
//namespace Project.Web.Controllers
|
||||
//{
|
||||
// // 로그인 요청 모델
|
||||
// public class LoginRequest
|
||||
// {
|
||||
// public string UserId { get; set; }
|
||||
// public string Password { get; set; }
|
||||
// public bool RememberMe { get; set; }
|
||||
// }
|
||||
|
||||
// 로그인 응답 모델
|
||||
public class LoginResponse
|
||||
{
|
||||
public bool Success { get; set; }
|
||||
public string Message { get; set; }
|
||||
public string RedirectUrl { get; set; }
|
||||
public object UserData { get; set; }
|
||||
}
|
||||
// // 로그인 응답 모델
|
||||
// public class LoginResponse
|
||||
// {
|
||||
// public bool Success { get; set; }
|
||||
// public string Message { get; set; }
|
||||
// public string RedirectUrl { get; set; }
|
||||
// public object UserData { get; set; }
|
||||
// }
|
||||
|
||||
public class HomeController : BaseController
|
||||
{
|
||||
[HttpPost]
|
||||
public void Index([FromBody]string value)
|
||||
{
|
||||
// public class HomeController : BaseController
|
||||
// {
|
||||
// [HttpPost]
|
||||
// public void Index([FromBody]string value)
|
||||
// {
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
// PUT api/values/5
|
||||
public void Put(int id, [FromBody]string value)
|
||||
{
|
||||
}
|
||||
// // PUT api/values/5
|
||||
// public void Put(int id, [FromBody]string value)
|
||||
// {
|
||||
// }
|
||||
|
||||
// DELETE api/values/5
|
||||
public void Delete(int id)
|
||||
{
|
||||
}
|
||||
// // DELETE api/values/5
|
||||
// public void Delete(int id)
|
||||
// {
|
||||
// }
|
||||
|
||||
[HttpGet]
|
||||
public string Test()
|
||||
{
|
||||
return "test";
|
||||
}
|
||||
// [HttpGet]
|
||||
// public string Test()
|
||||
// {
|
||||
// return "test";
|
||||
// }
|
||||
|
||||
[HttpPost]
|
||||
public HttpResponseMessage Login([FromBody] LoginRequest request)
|
||||
{
|
||||
var response = new LoginResponse();
|
||||
// [HttpPost]
|
||||
// public HttpResponseMessage Login([FromBody] LoginRequest request)
|
||||
// {
|
||||
// var response = new LoginResponse();
|
||||
|
||||
try
|
||||
{
|
||||
// 입력값 검증
|
||||
if (string.IsNullOrEmpty(request?.UserId) || string.IsNullOrEmpty(request?.Password))
|
||||
{
|
||||
response.Success = false;
|
||||
response.Message = "사용자 ID와 비밀번호를 입력해주세요.";
|
||||
return CreateJsonResponse(response);
|
||||
}
|
||||
// try
|
||||
// {
|
||||
// // 입력값 검증
|
||||
// if (string.IsNullOrEmpty(request?.UserId) || string.IsNullOrEmpty(request?.Password))
|
||||
// {
|
||||
// response.Success = false;
|
||||
// response.Message = "사용자 ID와 비밀번호를 입력해주세요.";
|
||||
// return CreateJsonResponse(response);
|
||||
// }
|
||||
|
||||
// TODO: 여기에 실제 데이터베이스 로그인 로직을 구현하세요
|
||||
// 예시: 데이터베이스에서 사용자 정보 확인
|
||||
bool isValidUser = ValidateUser(request.UserId, request.Password);
|
||||
// // TODO: 여기에 실제 데이터베이스 로그인 로직을 구현하세요
|
||||
// // 예시: 데이터베이스에서 사용자 정보 확인
|
||||
// bool isValidUser = ValidateUser(request.UserId, request.Password);
|
||||
|
||||
if (isValidUser)
|
||||
{
|
||||
// 로그인 성공
|
||||
response.Success = true;
|
||||
response.Message = "로그인에 성공했습니다.";
|
||||
response.RedirectUrl = "/DashBoard";
|
||||
// if (isValidUser)
|
||||
// {
|
||||
// // 로그인 성공
|
||||
// response.Success = true;
|
||||
// response.Message = "로그인에 성공했습니다.";
|
||||
// response.RedirectUrl = "/DashBoard";
|
||||
|
||||
// 사용자 정보 설정 (세션 또는 쿠키)
|
||||
SetUserSession(request.UserId, request.RememberMe);
|
||||
// // 사용자 정보 설정 (세션 또는 쿠키)
|
||||
// SetUserSession(request.UserId, request.RememberMe);
|
||||
|
||||
// 사용자 데이터 반환
|
||||
response.UserData = new
|
||||
{
|
||||
UserId = request.UserId,
|
||||
LoginTime = DateTime.Now,
|
||||
RememberMe = request.RememberMe
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
// 로그인 실패
|
||||
response.Success = false;
|
||||
response.Message = "사용자 ID 또는 비밀번호가 올바르지 않습니다.";
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
response.Success = false;
|
||||
response.Message = "로그인 처리 중 오류가 발생했습니다: " + ex.Message;
|
||||
}
|
||||
// // 사용자 데이터 반환
|
||||
// response.UserData = new
|
||||
// {
|
||||
// UserId = request.UserId,
|
||||
// LoginTime = DateTime.Now,
|
||||
// RememberMe = request.RememberMe
|
||||
// };
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// // 로그인 실패
|
||||
// response.Success = false;
|
||||
// response.Message = "사용자 ID 또는 비밀번호가 올바르지 않습니다.";
|
||||
// }
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// response.Success = false;
|
||||
// response.Message = "로그인 처리 중 오류가 발생했습니다: " + ex.Message;
|
||||
// }
|
||||
|
||||
return CreateJsonResponse(response);
|
||||
}
|
||||
// return CreateJsonResponse(response);
|
||||
// }
|
||||
|
||||
[HttpPost]
|
||||
public HttpResponseMessage Logout()
|
||||
{
|
||||
var response = new LoginResponse();
|
||||
// [HttpPost]
|
||||
// public HttpResponseMessage Logout()
|
||||
// {
|
||||
// var response = new LoginResponse();
|
||||
|
||||
try
|
||||
{
|
||||
// TODO: 여기에 로그아웃 로직을 구현하세요
|
||||
// 예시: 세션 정리, 쿠키 삭제 등
|
||||
ClearUserSession();
|
||||
// try
|
||||
// {
|
||||
// // TODO: 여기에 로그아웃 로직을 구현하세요
|
||||
// // 예시: 세션 정리, 쿠키 삭제 등
|
||||
// ClearUserSession();
|
||||
|
||||
response.Success = true;
|
||||
response.Message = "로그아웃되었습니다.";
|
||||
response.RedirectUrl = "/Login";
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
response.Success = false;
|
||||
response.Message = "로그아웃 처리 중 오류가 발생했습니다: " + ex.Message;
|
||||
}
|
||||
// response.Success = true;
|
||||
// response.Message = "로그아웃되었습니다.";
|
||||
// response.RedirectUrl = "/Login";
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// response.Success = false;
|
||||
// response.Message = "로그아웃 처리 중 오류가 발생했습니다: " + ex.Message;
|
||||
// }
|
||||
|
||||
return CreateJsonResponse(response);
|
||||
}
|
||||
// return CreateJsonResponse(response);
|
||||
// }
|
||||
|
||||
[HttpGet]
|
||||
public HttpResponseMessage CheckLoginStatus()
|
||||
{
|
||||
var response = new LoginResponse();
|
||||
// [HttpGet]
|
||||
// public HttpResponseMessage CheckLoginStatus()
|
||||
// {
|
||||
// var response = new LoginResponse();
|
||||
|
||||
try
|
||||
{
|
||||
// TODO: 여기에 로그인 상태 확인 로직을 구현하세요
|
||||
// 예시: 세션 또는 쿠키에서 사용자 정보 확인
|
||||
var currentUser = GetCurrentUser();
|
||||
// try
|
||||
// {
|
||||
// // TODO: 여기에 로그인 상태 확인 로직을 구현하세요
|
||||
// // 예시: 세션 또는 쿠키에서 사용자 정보 확인
|
||||
// var currentUser = GetCurrentUser();
|
||||
|
||||
if (currentUser != null)
|
||||
{
|
||||
response.Success = true;
|
||||
response.Message = "로그인된 상태입니다.";
|
||||
response.UserData = currentUser;
|
||||
}
|
||||
else
|
||||
{
|
||||
response.Success = false;
|
||||
response.Message = "로그인되지 않은 상태입니다.";
|
||||
response.RedirectUrl = "/Login";
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
response.Success = false;
|
||||
response.Message = "로그인 상태 확인 중 오류가 발생했습니다: " + ex.Message;
|
||||
}
|
||||
// if (currentUser != null)
|
||||
// {
|
||||
// response.Success = true;
|
||||
// response.Message = "로그인된 상태입니다.";
|
||||
// response.UserData = currentUser;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// response.Success = false;
|
||||
// response.Message = "로그인되지 않은 상태입니다.";
|
||||
// response.RedirectUrl = "/Login";
|
||||
// }
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// response.Success = false;
|
||||
// response.Message = "로그인 상태 확인 중 오류가 발생했습니다: " + ex.Message;
|
||||
// }
|
||||
|
||||
return CreateJsonResponse(response);
|
||||
}
|
||||
// return CreateJsonResponse(response);
|
||||
// }
|
||||
|
||||
// 헬퍼 메서드들
|
||||
private bool ValidateUser(string userId, string password)
|
||||
{
|
||||
// TODO: 실제 데이터베이스 검증 로직을 여기에 구현하세요
|
||||
// 예시: 데이터베이스에서 사용자 정보 조회 및 비밀번호 검증
|
||||
var encpass = Pub.MakePasswordEnc(password.Trim());
|
||||
// // 헬퍼 메서드들
|
||||
// private bool ValidateUser(string userId, string password)
|
||||
// {
|
||||
// // TODO: 실제 데이터베이스 검증 로직을 여기에 구현하세요
|
||||
// // 예시: 데이터베이스에서 사용자 정보 조회 및 비밀번호 검증
|
||||
// var encpass = Pub.MakePasswordEnc(password.Trim());
|
||||
|
||||
|
||||
// 임시 테스트용 (실제로는 데이터베이스에서 확인)
|
||||
return userId == "admin" && password == "admin";
|
||||
}
|
||||
// // 임시 테스트용 (실제로는 데이터베이스에서 확인)
|
||||
// return userId == "admin" && password == "admin";
|
||||
// }
|
||||
|
||||
private void SetUserSession(string userId, bool rememberMe)
|
||||
{
|
||||
// TODO: 세션 또는 쿠키에 사용자 정보 저장
|
||||
// 예시: HttpContext.Session["UserId"] = userId;
|
||||
// 예시: 쿠키 설정 (rememberMe가 true인 경우)
|
||||
//데이터베이스에서 해당 정보를 찾아와서 처리해야한다
|
||||
// private void SetUserSession(string userId, bool rememberMe)
|
||||
// {
|
||||
// // TODO: 세션 또는 쿠키에 사용자 정보 저장
|
||||
// // 예시: HttpContext.Session["UserId"] = userId;
|
||||
// // 예시: 쿠키 설정 (rememberMe가 true인 경우)
|
||||
// //데이터베이스에서 해당 정보를 찾아와서 처리해야한다
|
||||
|
||||
FCOMMON.info.Login.no = userId;
|
||||
FCOMMON.info.Login.nameK = drUser.name;
|
||||
FCOMMON.info.Login.dept = cmbDept.Text;// userdr.dept;// cmbDept.Text;
|
||||
FCOMMON.info.Login.level = drGrpUser.level;
|
||||
FCOMMON.info.Login.email = drUser.email;
|
||||
FCOMMON.info.Login.nameE = drUser.nameE;
|
||||
FCOMMON.info.Login.hp = drUser.hp;
|
||||
FCOMMON.info.Login.tel = drUser.tel;
|
||||
FCOMMON.info.Login.title = drUser.dept + "(" + drUser.grade + ")";
|
||||
FCOMMON.info.NotShowJobReportview = Pub.setting.NotShowJobreportPRewView;
|
||||
//var gcode = FCOMMON.DBM.ExecuteScalar("select isnull(gcode,'NOGCODE') from UserGroup where dept ='" + cmbDept.Text + "'");
|
||||
var gperm = FCOMMON.DBM.ExecuteScalar("select isnull(permission,0) from UserGroup where dept ='" + cmbDept.Text + "'");
|
||||
FCOMMON.info.Login.gcode = gCode;// gcode;
|
||||
FCOMMON.info.Login.process = drUser.id == "dev" ? "개발자" : drGrpUser.Process;
|
||||
FCOMMON.info.Login.permission = 0;
|
||||
FCOMMON.info.Login.gpermission = int.Parse(gperm);
|
||||
//FCOMMON.info.datapath = Pub.setting.SharedDataPath;
|
||||
FCOMMON.info.ShowBuyerror = Pub.setting.Showbuyerror; //210625
|
||||
// FCOMMON.info.Login.no = userId;
|
||||
// FCOMMON.info.Login.nameK = drUser.name;
|
||||
// FCOMMON.info.Login.dept = cmbDept.Text;// userdr.dept;// cmbDept.Text;
|
||||
// FCOMMON.info.Login.level = drGrpUser.level;
|
||||
// FCOMMON.info.Login.email = drUser.email;
|
||||
// FCOMMON.info.Login.nameE = drUser.nameE;
|
||||
// FCOMMON.info.Login.hp = drUser.hp;
|
||||
// FCOMMON.info.Login.tel = drUser.tel;
|
||||
// FCOMMON.info.Login.title = drUser.dept + "(" + drUser.grade + ")";
|
||||
// FCOMMON.info.NotShowJobReportview = Pub.setting.NotShowJobreportPRewView;
|
||||
// //var gcode = FCOMMON.DBM.ExecuteScalar("select isnull(gcode,'NOGCODE') from UserGroup where dept ='" + cmbDept.Text + "'");
|
||||
// var gperm = FCOMMON.DBM.ExecuteScalar("select isnull(permission,0) from UserGroup where dept ='" + cmbDept.Text + "'");
|
||||
// FCOMMON.info.Login.gcode = gCode;// gcode;
|
||||
// FCOMMON.info.Login.process = drUser.id == "dev" ? "개발자" : drGrpUser.Process;
|
||||
// FCOMMON.info.Login.permission = 0;
|
||||
// FCOMMON.info.Login.gpermission = int.Parse(gperm);
|
||||
// //FCOMMON.info.datapath = Pub.setting.SharedDataPath;
|
||||
// FCOMMON.info.ShowBuyerror = Pub.setting.Showbuyerror; //210625
|
||||
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
private void ClearUserSession()
|
||||
{
|
||||
// TODO: 세션 또는 쿠키에서 사용자 정보 삭제
|
||||
FCOMMON.info.Login.no = string.Empty;
|
||||
FCOMMON.info.Login.level = 0;
|
||||
FCOMMON.info.Login.gcode = string.Empty;
|
||||
FCOMMON.info.Login.permission = 0;
|
||||
FCOMMON.info.Login.gpermission = 0;
|
||||
Console.WriteLine("logout");
|
||||
}
|
||||
// private void ClearUserSession()
|
||||
// {
|
||||
// // TODO: 세션 또는 쿠키에서 사용자 정보 삭제
|
||||
// FCOMMON.info.Login.no = string.Empty;
|
||||
// FCOMMON.info.Login.level = 0;
|
||||
// FCOMMON.info.Login.gcode = string.Empty;
|
||||
// FCOMMON.info.Login.permission = 0;
|
||||
// FCOMMON.info.Login.gpermission = 0;
|
||||
// Console.WriteLine("logout");
|
||||
// }
|
||||
|
||||
private object GetCurrentUser()
|
||||
{
|
||||
// TODO: 현재 로그인된 사용자 정보 반환
|
||||
// 예시: HttpContext.Session["UserId"]에서 사용자 정보 조회
|
||||
return null; // 임시로 null 반환
|
||||
}
|
||||
// private object GetCurrentUser()
|
||||
// {
|
||||
// // TODO: 현재 로그인된 사용자 정보 반환
|
||||
// // 예시: HttpContext.Session["UserId"]에서 사용자 정보 조회
|
||||
// return null; // 임시로 null 반환
|
||||
// }
|
||||
|
||||
private HttpResponseMessage CreateJsonResponse(object data)
|
||||
{
|
||||
var json = JsonConvert.SerializeObject(data, new JsonSerializerSettings
|
||||
{
|
||||
NullValueHandling = NullValueHandling.Ignore
|
||||
});
|
||||
// private HttpResponseMessage CreateJsonResponse(object data)
|
||||
// {
|
||||
// var json = JsonConvert.SerializeObject(data, new JsonSerializerSettings
|
||||
// {
|
||||
// NullValueHandling = NullValueHandling.Ignore
|
||||
// });
|
||||
|
||||
return new HttpResponseMessage()
|
||||
{
|
||||
Content = new StringContent(
|
||||
json,
|
||||
System.Text.Encoding.UTF8,
|
||||
"application/json")
|
||||
};
|
||||
}
|
||||
// return new HttpResponseMessage()
|
||||
// {
|
||||
// Content = new StringContent(
|
||||
// json,
|
||||
// System.Text.Encoding.UTF8,
|
||||
// "application/json")
|
||||
// };
|
||||
// }
|
||||
|
||||
[HttpGet]
|
||||
public HttpResponseMessage Login()
|
||||
{
|
||||
// 직접 파일을 읽어서 반환
|
||||
var filePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Web", "wwwroot", "login.html");
|
||||
var contents = string.Empty;
|
||||
// [HttpGet]
|
||||
// public HttpResponseMessage Login()
|
||||
// {
|
||||
// // 직접 파일을 읽어서 반환
|
||||
// var filePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Web", "wwwroot", "login.html");
|
||||
// var contents = string.Empty;
|
||||
|
||||
if (System.IO.File.Exists(filePath))
|
||||
{
|
||||
contents = System.IO.File.ReadAllText(filePath, System.Text.Encoding.UTF8);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 파일이 없으면 404 에러 페이지 또는 기본 메시지
|
||||
contents = "<html><body><h1>404 - File Not Found</h1><p>The requested file was not found: " + filePath + "</p></body></html>";
|
||||
}
|
||||
// if (System.IO.File.Exists(filePath))
|
||||
// {
|
||||
// contents = System.IO.File.ReadAllText(filePath, System.Text.Encoding.UTF8);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// // 파일이 없으면 404 에러 페이지 또는 기본 메시지
|
||||
// contents = "<html><body><h1>404 - File Not Found</h1><p>The requested file was not found: " + filePath + "</p></body></html>";
|
||||
// }
|
||||
|
||||
//공용값 적용
|
||||
ApplyCommonValue(ref contents);
|
||||
// //공용값 적용
|
||||
// ApplyCommonValue(ref contents);
|
||||
|
||||
var resp = new HttpResponseMessage()
|
||||
{
|
||||
Content = new StringContent(
|
||||
contents,
|
||||
System.Text.Encoding.UTF8,
|
||||
"text/html")
|
||||
};
|
||||
// var resp = new HttpResponseMessage()
|
||||
// {
|
||||
// Content = new StringContent(
|
||||
// contents,
|
||||
// System.Text.Encoding.UTF8,
|
||||
// "text/html")
|
||||
// };
|
||||
|
||||
return resp;
|
||||
}
|
||||
// return resp;
|
||||
// }
|
||||
|
||||
[HttpGet]
|
||||
public HttpResponseMessage Index()
|
||||
{
|
||||
// 직접 파일을 읽어서 반환
|
||||
var filePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Web", "wwwroot", "index.html");
|
||||
var contents = string.Empty;
|
||||
// [HttpGet]
|
||||
// public HttpResponseMessage Index()
|
||||
// {
|
||||
// // 직접 파일을 읽어서 반환
|
||||
// var filePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Web", "wwwroot", "index.html");
|
||||
// var contents = string.Empty;
|
||||
|
||||
if (System.IO.File.Exists(filePath))
|
||||
{
|
||||
contents = System.IO.File.ReadAllText(filePath, System.Text.Encoding.UTF8);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 파일이 없으면 404 에러 페이지 또는 기본 메시지
|
||||
contents = "<html><body><h1>404 - File Not Found</h1><p>The requested file was not found: " + filePath + "</p></body></html>";
|
||||
}
|
||||
// if (System.IO.File.Exists(filePath))
|
||||
// {
|
||||
// contents = System.IO.File.ReadAllText(filePath, System.Text.Encoding.UTF8);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// // 파일이 없으면 404 에러 페이지 또는 기본 메시지
|
||||
// contents = "<html><body><h1>404 - File Not Found</h1><p>The requested file was not found: " + filePath + "</p></body></html>";
|
||||
// }
|
||||
|
||||
//공용값 적용
|
||||
ApplyCommonValue(ref contents);
|
||||
// //공용값 적용
|
||||
// ApplyCommonValue(ref contents);
|
||||
|
||||
var resp = new HttpResponseMessage()
|
||||
{
|
||||
Content = new StringContent(
|
||||
contents,
|
||||
System.Text.Encoding.UTF8,
|
||||
"text/html")
|
||||
};
|
||||
// var resp = new HttpResponseMessage()
|
||||
// {
|
||||
// Content = new StringContent(
|
||||
// contents,
|
||||
// System.Text.Encoding.UTF8,
|
||||
// "text/html")
|
||||
// };
|
||||
|
||||
return resp;
|
||||
}
|
||||
// return resp;
|
||||
// }
|
||||
|
||||
}
|
||||
}
|
||||
// }
|
||||
//}
|
||||
|
||||
Reference in New Issue
Block a user