Commit graph

681 commits

Author SHA1 Message Date
devdho
d6d705706c Add ifvar attribute to query condition 2021-06-17 11:24:58 +09:00
Kijin Sung
1c47785276 Support contenteditable="false" (fix #1710) 2021-05-14 23:14:28 +09:00
Kijin Sung
c6b6d71214 Remove outdated comment (see #1187) 2021-05-14 23:08:36 +09:00
Kijin Sung
86214cb0fa Return a more descriptive error when query result class is not found 2021-04-26 15:45:31 +09:00
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