Commit graph

677 commits

Author SHA1 Message Date
Kijin Sung
ce5dc45326 Allow class name to be specified when executing queries
PDO에는 결과를 어떤 클래스로 받아올지 선택하는 기능이 있는데 (기본값 stdClass)
executeQuery()로 쿼리를 실행할 때도 이 기능을 활용할 수 있도록 개선합니다.
stdClass를 받아와서 속성들을 추출한 후 documentItem에 도로 집어넣는 등
비효율적인 부분을 추후 개선하는 데 도움이 될 것으로 예상합니다.
2021-04-25 13:18:47 +09:00
Kijin Sung
741a714abd Set standalone attribute to 'auto' if new class syntax is used in module.xml
- 새로 추가된 클래스 문법 사용시 standalone 속성 기본값은 true가 아닌 auto로 지정

- standalone 속성의 의미는 아래와 같음
  - true: 항상 접근 허용 (기존 방식으로 선언한 액션의 기본값)
  - false: mid가 소속 모듈과 일치하거나, admin 모듈인 경우에만 접근 허용
  - auto: module 또는 mid가 소속 모듈과 일치하거나, admin 모듈인 경우에만 접근 허용
    (즉, false와 비슷하지만 exec_json 함수 등에서 module+act로 호출하는 경우에는
    mid가 없더라도 module만 일치하면 호출할 수 있도록 허용하여 개발 편의를 높임)

- 단, global_route 속성이 있는 경우 standalone 속성 기본값은 true임
  (전역 짧은주소는 mid 없이 호출될 수밖에 없으므로)
2021-04-20 21:45:21 +09:00
Kijin Sung
73695ccdd2 For backward compatibility, allow both GET and POST if an action does not specify method 2021-04-12 22:21:58 +09:00
Kijin Sung
62d9befb0d Support custom classes in module.xml 2021-04-12 21:03:03 +09:00
Kijin Sung
532e172d41 Fix #1658 show error message if debug is enabled for current user 2021-03-18 00:27:15 +09:00
Kijin Sung
1003f0ea49 Fix #1642 Fix #1647 보완
주의: 여기서 Context가 아닌 Session을 참조하면 무한루프에 빠지면서 memory_limit을 초과할 수 있음
2021-03-17 23:54:18 +09:00
Kijin Sung
fef8b10ce6 Fix #1642 Fix #1647 distinguish not-logged-in state before session start and after session start 2021-03-17 23:40:29 +09:00
Kijin Sung
72e7532764 Fix compatibility with PBKDF2 hashes with iteration counts that are not zero-padded 2021-03-14 00:26:15 +09:00
Kijin Sung
6b6c0eacfc Fix SQL error when list count is 0 2021-02-26 16:25:11 +09:00
Kijin Sung
e423cba24d Use Origin header before Referer to check CSRF
OWASP에서는 Referer 헤더보다 Origin 헤더를 먼저 체크하는 것을 권장합니다.
Referer가 비어 있는 경우에도 Origin 헤더에는 유용한 정보가 들어 있을 수 있기 때문입니다.

https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html
2021-02-23 16:51:46 +09:00
Kijin Sung
f4758b7570 Fix #1610 memory leak in initial debug status check 2021-02-10 00:27:04 +09:00
Kijin Sung
9b714acb55 Show memory usage in debug panel 2021-02-09 23:52:35 +09:00
Kijin Sung
6b7486e74f Add 'ifvar' attribute to most query elements
XML 쿼리에서 'ifvar' 속성을 사용하여, 특정 변수가 있을 때만 유효한 테이블이나
컬럼, 인덱스 힌트 등을 지정할 수 있도록 합니다. 어떤 변수를 넣는지에 따라
<condition> 뿐 아니라 <table>, <column>, <index_hint? 등의 적용 여부도
XML 쿼리 수정 없이 자유롭게 컨트롤할 수 있게 됩니다.
2021-02-09 21:58:07 +09:00
Kijin Sung
c5ceafc841 Fix debug disabled if first error or warning occurs before session start 2021-02-09 01:21:33 +09:00
Kijin Sung
20871055e4 Support either/both username and password for Redis #1602 2021-02-05 21:04:20 +09:00
Kijin Sung
b9cb5f429a Use savepoints for nested transactions
- XE에서 사용하던 savepoint 방식을 복원
- 트랜잭션 안에서 commit이 무시되더라도 해당 사실을 알리는 로그를 남기도록 함
2021-02-04 16:39:09 +09:00
Kijin Sung
9dc8476f5d Set $output->data to NULL if query returns no rows 2021-01-31 01:43:07 +09:00
Kijin Sung
800f323b9c Fix count error when searching by extra_vars
https://xetown.com/questions/1519425
2021-01-31 01:34:56 +09:00
Kijin Sung
957be16a25 Replace all wildcard columns with '1' in count-only subquery #1575 2021-01-29 14:40:28 +09:00
Kijin Sung
334b1cc277 Fix remainder of unit test warnings in PHP 8.0 2021-01-29 00:36:24 +09:00
Kijin Sung
e368cb2f2a Fix warnings in Debug class when config is empty 2021-01-28 23:34:15 +09:00
Kijin Sung
8e56fe5912 Fix warning in PHP 8.0 during unit tests 2021-01-28 23:04:27 +09:00
Kijin Sung
ebe28cd884 Fix warning in debug class if config doesn't exist 2021-01-28 22:46:52 +09:00
Kijin Sung
60465fb2db Fix various warnings in PHP 8.0 2021-01-28 22:32:56 +09:00
Kijin Sung
f46b41f437 Update unit tests for latest codeception 2021-01-28 21:53:44 +09:00
Kijin Sung
9bedd75a37 Wrap count query if there is a subquery column #1575 2021-01-24 11:00:09 +09:00
Kijin Sung
d7b9e0aa46 Change === to == because size can be a string 2021-01-22 01:10:23 +09:00
Kijin Sung
09a292440c Also restrict the charset if a column is defined as char(1) 2021-01-22 01:05:52 +09:00
Kijin Sung
2cec4ea6b4 Clean up utf8mb4 setting in default table schema 2021-01-22 01:01:58 +09:00
Kijin Sung
f751d59708 Use latin1 charset for ASCII-only columns that need to be short for indexing 2021-01-22 00:51:47 +09:00
Kijin Sung
aefa19e850 Fix SCSS imports with relative paths not working 2021-01-21 15:45:58 +09:00
Kijin Sung
2cdf9d0e2d Adjust loading priority of modules vs. plugins 2021-01-21 00:44:35 +09:00
Kijin Sung
6f8a252cd1 Fix smtp security=none not being recognized 2021-01-20 00:34:23 +09:00
Kijin Sung
d5160c28ce Pass RX_REQUEST_URL directly to the Router 2021-01-19 23:28:13 +09:00
Kijin Sung
8964891387 Disable rewrite level 2 if test request fails 2021-01-19 23:18:38 +09:00
Kijin Sung
12ccb356b0
Merge pull request #1566 from mackeyhan/dbquery-patch
Fix 'not in' operation
2021-01-18 16:31:33 +09:00
mackeyhan
e64cbfbb9e
Fix 'not in' operation 2021-01-18 15:18:25 +09:00
Kijin Sung
f07afe9c58 Unset $this->_last_stmt before next query 2021-01-14 22:39:43 +09:00
Kijin Sung
1a89c5e0d6 Rename FCM/APNs
PC용 브라우저나 iOS에서도 FCM을 사용할 수 있으므로,
모바일 운영체제 명칭이 아닌 서비스 명칭을 사용하도록 변경합니다.
2021-01-14 11:37:55 +09:00
Kijin Sung
03e5909036 Add ability to configure index hint with variable
See #1560
2021-01-14 00:40:57 +09:00
Kijin Sung
4805a1864b Append query ID and IP address as a /* comment */ to every query, if enabled in debug settings 2021-01-13 22:14:15 +09:00
Kijin Sung
c26325efee Fix #1550 mark counter_site_status table as deleted 2021-01-08 23:54:50 +09:00
Kijin Sung
3bae984d08 Add ApacheBench to list of bots 2021-01-08 20:59:19 +09:00
Kijin Sung
1a204d8c52 Completely disable Debug logging if it is not enabled for the current user
관리자 또는 특정 IP에서만 디버그 기능을 사용하도록 설정된 경우,
그 밖의 요청에서는 어떤 에러메시지, 쿼리, 트리거 소요시간 등의 기록도
디버그 클래스에 저장하지 않도록 변경합니다.

워닝이 많이 발생하는 PHP 8.0에서는 20~30%의 성능 개선 효과가 있습니다.
2021-01-07 02:51:43 +09:00
Kijin Sung
cf1f4f3a3b Fix incorrect handling of subquery in some SELECT DISTINCT queries 2021-01-07 01:05:32 +09:00
Kijin Sung
3f766a937c Fix incorrect handling of auto-generated COUNT(*) queries when there are GROUP BY or DISTINCT clauses 2021-01-07 00:55:43 +09:00
Kijin Sung
b3b89dc0a1 Sort mail/SMS drivers more naturally, and translate 'Dummy' 2021-01-06 23:01:29 +09:00
Kijin Sung
2ffe819465 Replace Amazon SES driver with wrapper around SMTP endpoint #1305 2021-01-06 22:12:30 +09:00
Kijin Sung
3cdcd2dcc0 Accommodate formatter changes 2021-01-06 21:50:27 +09:00
Kijin Sung
2189ba5917 Remove useless use_prepared_statements option 2021-01-05 23:28:51 +09:00