Merge feature/template into master

This commit is contained in:
2025-12-15 14:56:38 +09:00
48 changed files with 6396 additions and 445 deletions

View File

@@ -1,202 +0,0 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class App extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* Base Site URL
* --------------------------------------------------------------------------
*
* URL to your CodeIgniter root. Typically, this will be your base URL,
* WITH a trailing slash:
*
* E.g., http://example.com/
*/
public string $baseURL = 'http://test2-admin.confirms.co.kr';
/**
* Allowed Hostnames in the Site URL other than the hostname in the baseURL.
* If you want to accept multiple Hostnames, set this.
*
* E.g.,
* When your site URL ($baseURL) is 'http://example.com/', and your site
* also accepts 'http://media.example.com/' and 'http://accounts.example.com/':
* ['media.example.com', 'accounts.example.com']
*
* @var list<string>
*/
public array $allowedHostnames = [];
/**
* --------------------------------------------------------------------------
* Index File
* --------------------------------------------------------------------------
*
* Typically, this will be your `index.php` file, unless you've renamed it to
* something else. If you have configured your web server to remove this file
* from your site URIs, set this variable to an empty string.
*/
public string $indexPage = '';
/**
* --------------------------------------------------------------------------
* URI PROTOCOL
* --------------------------------------------------------------------------
*
* This item determines which server global should be used to retrieve the
* URI string. The default setting of 'REQUEST_URI' works for most servers.
* If your links do not seem to work, try one of the other delicious flavors:
*
* 'REQUEST_URI': Uses $_SERVER['REQUEST_URI']
* 'QUERY_STRING': Uses $_SERVER['QUERY_STRING']
* 'PATH_INFO': Uses $_SERVER['PATH_INFO']
*
* WARNING: If you set this to 'PATH_INFO', URIs will always be URL-decoded!
*/
public string $uriProtocol = 'REQUEST_URI';
/*
|--------------------------------------------------------------------------
| Allowed URL Characters
|--------------------------------------------------------------------------
|
| This lets you specify which characters are permitted within your URLs.
| When someone tries to submit a URL with disallowed characters they will
| get a warning message.
|
| As a security measure you are STRONGLY encouraged to restrict URLs to
| as few characters as possible.
|
| By default, only these are allowed: `a-z 0-9~%.:_-`
|
| Set an empty string to allow all characters -- but only if you are insane.
|
| The configured value is actually a regular expression character group
| and it will be used as: '/\A[<permittedURIChars>]+\z/iu'
|
| DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!!
|
*/
public string $permittedURIChars = 'a-z 0-9~%.:_\-';
/**
* --------------------------------------------------------------------------
* Default Locale
* --------------------------------------------------------------------------
*
* The Locale roughly represents the language and location that your visitor
* is viewing the site from. It affects the language strings and other
* strings (like currency markers, numbers, etc), that your program
* should run under for this request.
*/
public string $defaultLocale = 'en';
/**
* --------------------------------------------------------------------------
* Negotiate Locale
* --------------------------------------------------------------------------
*
* If true, the current Request object will automatically determine the
* language to use based on the value of the Accept-Language header.
*
* If false, no automatic detection will be performed.
*/
public bool $negotiateLocale = false;
/**
* --------------------------------------------------------------------------
* Supported Locales
* --------------------------------------------------------------------------
*
* If $negotiateLocale is true, this array lists the locales supported
* by the application in descending order of priority. If no match is
* found, the first locale will be used.
*
* IncomingRequest::setLocale() also uses this list.
*
* @var list<string>
*/
public array $supportedLocales = ['en'];
/**
* --------------------------------------------------------------------------
* Application Timezone
* --------------------------------------------------------------------------
*
* The default timezone that will be used in your application to display
* dates with the date helper, and can be retrieved through app_timezone()
*
* @see https://www.php.net/manual/en/timezones.php for list of timezones
* supported by PHP.
*/
public string $appTimezone = 'UTC';
/**
* --------------------------------------------------------------------------
* Default Character Set
* --------------------------------------------------------------------------
*
* This determines which character set is used by default in various methods
* that require a character set to be provided.
*
* @see http://php.net/htmlspecialchars for a list of supported charsets.
*/
public string $charset = 'UTF-8';
/**
* --------------------------------------------------------------------------
* Force Global Secure Requests
* --------------------------------------------------------------------------
*
* If true, this will force every request made to this application to be
* made via a secure connection (HTTPS). If the incoming request is not
* secure, the user will be redirected to a secure version of the page
* and the HTTP Strict Transport Security (HSTS) header will be set.
*/
public bool $forceGlobalSecureRequests = false;
/**
* --------------------------------------------------------------------------
* Reverse Proxy IPs
* --------------------------------------------------------------------------
*
* If your server is behind a reverse proxy, you must whitelist the proxy
* IP addresses from which CodeIgniter should trust headers such as
* X-Forwarded-For or Client-IP in order to properly identify
* the visitor's IP address.
*
* You need to set a proxy IP address or IP address with subnets and
* the HTTP header for the client IP address.
*
* Here are some examples:
* [
* '10.0.1.200' => 'X-Forwarded-For',
* '192.168.5.0/24' => 'X-Real-IP',
* ]
*
* @var array<string, string>
*/
public array $proxyIPs = [];
/**
* --------------------------------------------------------------------------
* Content Security Policy
* --------------------------------------------------------------------------
*
* Enables the Response's Content Secure Policy to restrict the sources that
* can be used for images, scripts, CSS files, audio, video, etc. If enabled,
* the Response object will populate default values for the policy from the
* `ContentSecurityPolicy.php` file. Controllers can always add to those
* restrictions at run time.
*
* For a better understanding of CSP, see these documents:
*
* @see http://www.html5rocks.com/en/tutorials/security/content-security-policy/
* @see http://www.w3.org/TR/CSP/
*/
public bool $CSPEnabled = false;
}

View File

@@ -9,57 +9,68 @@ use CodeIgniter\Router\RouteCollection;
$routes->setAutoRoute(true);
/**
* 화면
* 공통 화면
*/
$routes->get("/login", "Login::index");
$routes->get("/logout", "Login::out");
$routes->get('/login', 'Login::index');
$routes->get('/logout', 'Login::out');
$routes->get('/', 'Home\Home::dashboard');
$routes->get('/home', 'Home\Home::dashboard');
$routes->get('/board/notice/lists', 'Board\Notice::notice'); // 공지사항
$routes->get('/board/notice/detail/(:num)', 'Board\Notice::detail/$1'); // 공지사항 상세
$routes->get('/board/notice/write', 'Board\Notice::write'); // 공지사항 작성
$routes->get('/board/notice/modify/(:num)', 'Board\Notice::modify/$1'); // 공지사항 수정
/**
* 시스템관리
* 게시판 (board) 그룹
*/
$routes->get('/manage/user/lists', 'Manage\User::user'); // 사용자관리
$routes->get('/manage/dept/lists', 'Manage\Dept::dept'); // 조직관리
$routes->get('/manage/dept/getchkuser', 'Manage\Dept::getchkuser'); // 총괄팀장 페이지
$routes->group('board', ['namespace' => 'App\Controllers\Board'], function ($routes) {
$routes->get('/manage/menu/lists', 'Manage\Menu::lists'); // 메뉴관리
$routes->get('/manage/dupl_phone/lists', 'Manage\Phone::lists'); // 전화확인관리
$routes->get('/manage/loginlog/lists', 'Manage\LoginLog::lists'); // 로그인이력
/**
* 공지사항
*/
$routes->get('notice/lists', 'Notice::notice');
$routes->get('notice/detail/(:num)', 'Notice::detail/$1');
$routes->get('notice/write', 'Notice::write');
$routes->get('notice/modify/(:num)', 'Notice::modify/$1');
// API
$routes->get('notice/getNoticeList', 'Notice::getNoticeList');
$routes->post('notice/actWrite', 'Notice::actWrite');
$routes->post('notice/actModify', 'Notice::actModify');
$routes->post('notice/remove', 'Notice::actRemove');
$routes->get('notice/download/(:num)', 'Notice::download/$1');
});
/**
* API ROUTES
* 시스템관리 (manage) 그룹
*/
$routes->post('/login/chkLogin', 'Login::chkLogin'); // 로그인 요청
$routes->get('/board/notice/getNoticeList', 'Board\Notice::getNoticeList'); // 공지사항 목록 조회
$routes->post('/board/notice/actWrite', 'Board\Notice::actWrite'); // 공지사항 작성 요청
$routes->post('/board/notice/actModify', 'Board\Notice::actModify'); // 공지사항 작성 요청
$routes->post('/board/notice/remove', 'Board\Notice::actRemove'); // 공지사항 삭제 요청
$routes->get('/board/notice/download/(:num)', 'Board\Notice::download/$1'); // 첨부파일 다운로드
$routes->group('manage', ['namespace' => 'App\Controllers\Manage'], function ($routes) {
// 시스템관리
$routes->get('/manage/user/getUserList', 'Manage\User::getUserList'); // 유저 목록 조회
$routes->post('/manage/user/save', 'Manage\User::saveUser'); // 유저정보저장
$routes->post('/manage/user/remove', 'Manage\User::removeUser'); // 유저정보삭제
$routes->get('/manage/user/excel', 'Manage\User::excel'); // 유저 엑셀다운로드
/** 화면 */
$routes->get('/manage/dept/getDeptList', 'Manage\Dept::getDeptList'); // 조직목록 조회
$routes->get('/manage/dept/getUserList', 'Manage\Dept::getUserList'); // 유저 목록 조회
$routes->get('/manage/dept/getPdept', 'Manage\Dept::getPdept'); // 상위조직 조회
$routes->post('/manage/dept/saveDept', 'Manage\Dept::saveDept'); // 상위조직 조회
$routes->get('sms/lists', 'Sms::lists');
$routes->get('sms/smsSendView', 'Sms::smsSendView');
$routes->get('user/lists', 'User::user');
$routes->get('dept/lists', 'Dept::dept');
$routes->get('dept/getchkuser', 'Dept::getchkuser');
$routes->get('menu/lists', 'Menu::lists');
$routes->get('permit/lists', 'Permit::lists');
$routes->get('areas/lists', 'Areas::lists');
$routes->get('dupl_phone/lists', 'Phone::lists');
$routes->get('scomplex/lists', 'Scomplex::lists');
$routes->get('loginlog/lists', 'LoginLog::lists');
$routes->post('/manage/menu/getMenuList', 'Manage\Menu::getMenuList'); // 메뉴 목록 조회
/** API - SMS관리 */
$routes->get('sms/getSmsList', 'Sms::getSmsList');
$routes->get('sms/excel', 'Sms::excel');
$routes->get('sms/sendSms', 'Sms::sendSms');
$routes->get('/manage/dupl_phone/getDuplPhoneList', 'Manage\Phone::getDuplPhoneList'); // 전화확인 목록조회
$routes->post('/manage/dupl_phone/savePhone', 'Manage\Phone::savePhone'); // 전화정보저장
/** API - 사용자관리 */
$routes->get('user/getUserList', 'User::getUserList');
$routes->post('user/save', 'User::saveUser');
$routes->post('user/remove', 'User::removeUser');
$routes->get('user/excel', 'User::excel');
$routes->post('user/saveSms', 'User::saveSms');
<<<<<<< HEAD
$routes->get('/manage/loginlog/getLogList', 'Manage\LoginLog::getLogList'); // 로그 목록 조회
$routes->get('/manage/loginlog/excel', 'Manage\LoginLog::excel'); // 엑셀다운로드
@@ -74,4 +85,46 @@ $routes->get('/manage/loginlog/excel', 'Manage\LoginLog::excel'); // 엑셀다
if (is_file($filepath = APPPATH . 'Config/Routes/Api.php')) {
require $filepath;
}
}
=======
/** API - 조직관리 */
$routes->get('dept/getDeptList', 'Dept::getDeptList');
$routes->get('dept/getUserList', 'Dept::getUserList');
$routes->get('dept/getPdept', 'Dept::getPdept');
$routes->post('dept/saveDept', 'Dept::saveDept');
/** API - 메뉴관리 */
$routes->post('menu/getMenuList', 'Menu::getMenuList');
$routes->post('menu/saveMenu', 'Menu::saveMenu');
/** API - 권한관리 */
$routes->get('permit/getMenuAuthList', 'Permit::getMenuAuthList');
$routes->post('permit/saveMenuAuth', 'Permit::saveMenuAuth');
/** API - 지역관리 */
$routes->post('areas/getAreaList', 'Areas::getAreaList');
$routes->get('areas/getSvcArea', 'Areas::getSvcArea');
$routes->post('areas/saveRegion', 'Areas::saveRegion');
$routes->post('areas/saveAllRegion', 'Areas::saveAllRegion');
/** API - 전화확인관리 */
$routes->get('dupl_phone/getDuplPhoneList', 'Phone::getDuplPhoneList');
$routes->post('dupl_phone/savePhone', 'Phone::savePhone');
$routes->get('dupl_phone/excel', 'Phone::excel');
/** API - 특이단지관리 */
$routes->get('scomplex/getScomplexList', 'Scomplex::getScomplexList');
$routes->post('scomplex/saveScomplex', 'Scomplex::saveScomplex');
$routes->get('scomplex/excel', 'Scomplex::excel');
/** API - 로그인로그관리 */
$routes->get('loginlog/getLogList', 'LoginLog::getLogList');
$routes->get('loginlog/excel', 'LoginLog::excel');
});
/**
* 로그인 API
*/
$routes->post('/login/chkLogin', 'Login::chkLogin');
>>>>>>> feature/template

View File

@@ -5,6 +5,7 @@ namespace Config;
use CodeIgniter\Config\BaseConfig;
use CodeIgniter\Session\Handlers\BaseHandler;
use CodeIgniter\Session\Handlers\FileHandler;
use CodeIgniter\Session\Handlers\RedisHandler;
class Session extends BaseConfig
{
@@ -21,7 +22,8 @@ class Session extends BaseConfig
*
* @var class-string<BaseHandler>
*/
public string $driver = FileHandler::class;
// public string $driver = FileHandler::class;
public string $driver = RedisHandler::class;
/**
* --------------------------------------------------------------------------
@@ -57,7 +59,8 @@ class Session extends BaseConfig
*
* IMPORTANT: You are REQUIRED to set a valid save path!
*/
public string $savePath = WRITEPATH . 'session';
// public string $savePath = WRITEPATH . 'session';
public string $savePath = 'tcp://192.168.10.243:6379?database=0';
/**
* --------------------------------------------------------------------------