Commit graph

180 commits

Author SHA1 Message Date
Marcin Kurczewski
c0bc4d4f19 Improved compatibility with MySQL 2014-10-18 18:48:29 +02:00
Marcin Kurczewski
6d7566ee2f Added post scoring 2014-10-18 18:48:29 +02:00
Marcin Kurczewski
8a9bf259e4 Added order:fav_date and order:fav_count support 2014-10-18 18:48:29 +02:00
Marcin Kurczewski
e811b1a876 Reduced aliases for searches 2014-10-18 18:48:29 +02:00
Marcin Kurczewski
8c108ccfbf Changed default order to descending 2014-10-18 18:48:29 +02:00
Marcin Kurczewski
f090a752f0 Added favorite count to post list 2014-10-18 18:48:29 +02:00
Marcin Kurczewski
6e22efdd6e Added post favoriting 2014-10-18 18:48:29 +02:00
Marcin Kurczewski
6d4a4f11d1 Added post searching by date 2014-10-18 18:48:29 +02:00
Marcin Kurczewski
5159214e80 Added searching by tags and ids 2014-10-18 18:48:29 +02:00
Marcin Kurczewski
9edc74f9a5 Added post history 2014-10-18 18:48:28 +02:00
Marcin Kurczewski
df939e0343 Simplified injecting db connection for upgrades 2014-10-18 18:48:28 +02:00
Marcin Kurczewski
2fc6a23e46 Refactored search filters 2014-10-18 18:48:28 +02:00
Marcin Kurczewski
5dc85b7dee Added post relations 2014-10-18 18:48:28 +02:00
Marcin Kurczewski
22b30c3e43 Added concurrent editing detection 2014-10-18 18:48:28 +02:00
Marcin Kurczewski
a7c07d32df Added last edit time to basic post information 2014-10-18 18:48:28 +02:00
Marcin Kurczewski
d2447045dd Added basic post editing 2014-10-18 18:48:28 +02:00
Marcin Kurczewski
d3015627b3 Added post globals 2014-10-18 18:48:28 +02:00
Marcin Kurczewski
ac62a44ba7 Fixed registering multiple users with empty e-mail 2014-10-18 18:48:27 +02:00
Marcin Kurczewski
97ca08cf44 Added post featuring 2014-10-18 18:48:27 +02:00
Marcin Kurczewski
2387dd4074 Refactored entity filtering 2014-10-18 18:48:27 +02:00
Marcin Kurczewski
7b0d907acc Fixed login remembering 2014-10-18 18:48:27 +02:00
Marcin Kurczewski
c33817e4ab Optimized API operations
Every operation updated user last login time, which was inefficient.
Changed it to update only after logins from credentials or cookies.
2014-10-18 18:48:27 +02:00
Marcin Kurczewski
a140e04ca3 Added post deleting 2014-10-18 18:48:27 +02:00
Marcin Kurczewski
aff5965091 Added basic information to post view 2014-10-18 18:48:27 +02:00
Marcin Kurczewski
51a80c22c5 Added author and upload date to post view 2014-10-18 18:48:27 +02:00
Marcin Kurczewski
881d2a6b38 Fixed unknown variable 2014-10-18 18:48:27 +02:00
Marcin Kurczewski
1d72cec84b Added user lazy loading 2014-10-18 18:48:27 +02:00
Marcin Kurczewski
39d854cb8e Added usage count tracking to tags and posts 2014-10-18 18:48:27 +02:00
Marcin Kurczewski
af3908a23c Added id column to tags 2014-10-18 18:48:27 +02:00
Marcin Kurczewski
7e1234e448 Fixed thumbnail generating 2014-10-18 18:48:26 +02:00
Marcin Kurczewski
b01adce156 Added stricter validation to user avatars 2014-10-18 18:48:26 +02:00
Marcin Kurczewski
42001d3edf Refactored thumbnail system 2014-10-18 18:48:26 +02:00
Marcin Kurczewski
fbdb4e5128 Changed mime detection to be case insensitive 2014-10-18 18:48:26 +02:00
Marcin Kurczewski
a3f9382671 Changed file mgmt to use entities' lazy getters 2014-10-18 18:48:26 +02:00
Marcin Kurczewski
13a15a3a6b Added post mime type saving 2014-10-18 18:48:25 +02:00
Marcin Kurczewski
34752529b5 Fixed saving tags under certain circumstances 2014-10-18 18:48:25 +02:00
Marcin Kurczewski
6defeb0da4 Fixed youtube thumbnails 2014-10-18 18:48:25 +02:00
Marcin Kurczewski
7806333b24 Added post view placeholder 2014-10-18 18:48:24 +02:00
Marcin Kurczewski
3b505a9c60 Fixed transaction manager tests using real DB 2014-10-18 18:48:24 +02:00
Marcin Kurczewski
5cfb225400 Fixed lazy loaders injection
AbstractSearchService::getByFilter() wasn't injecting lazy loaders,
because it didn't call AbstractDao::afterLoad(). This resulted in tags
not showing up in post list, because there was nothing to retrieve them.
Changed lazy loaders injection so that it's always executed as soon as
possible (i.e. right in EntityConverter).
2014-10-18 18:48:24 +02:00
Marcin Kurczewski
a16a2d3235 Added posts listing (closed #7) 2014-10-18 18:48:24 +02:00
Marcin Kurczewski
15eb2342b9 Moved public data to public_html/
This is going to improve caching.
2014-10-18 18:48:24 +02:00
Marcin Kurczewski
55f4f4430b Added post content and thumbnail presenter 2014-10-18 18:48:24 +02:00
Marcin Kurczewski
b4d2c5ecbb Fixed retrieving total record count 2014-10-18 18:48:24 +02:00
Marcin Kurczewski
932407a571 Fixed unserializing enum values 2014-10-18 18:48:24 +02:00
Marcin Kurczewski
815a37cf9a Allowed setting e-mail to empty after activation 2014-10-18 18:48:23 +02:00
Marcin Kurczewski
aee6ed7dbf Fixed bad message when setting e-mail to empty 2014-10-18 18:48:23 +02:00
Marcin Kurczewski
f032460621 Fixed MIME retrieval for files 2014-10-18 18:48:23 +02:00
Marcin Kurczewski
ef451d93ac Added protection against too big uploads 2014-10-18 18:48:23 +02:00
Marcin Kurczewski
c155cc3e5c Fixed file size check in FileService::download() 2014-10-18 18:48:23 +02:00
Marcin Kurczewski
ef1a3b9843 Minified exception traces 2014-10-18 18:48:22 +02:00
Marcin Kurczewski
0ebe4d5d3e Added checks for malformed JSON data 2014-10-18 18:48:22 +02:00
Marcin Kurczewski
047c84ec3a Bypassed phpcs warnings that shouldn't be there 2014-10-18 18:48:22 +02:00
Marcin Kurczewski
bc8e1b05a6 Implemented post uploads (closed #11) 2014-10-18 18:48:22 +02:00
Marcin Kurczewski
bb7b1f3321 Turned errors into exceptions 2014-10-18 18:48:22 +02:00
Marcin Kurczewski
6e196637eb Moved type conversion to EntityConverters 2014-10-18 18:48:22 +02:00
Marcin Kurczewski
9bd114e5b6 Moved base64 decoding to FormData 2014-10-18 18:48:22 +02:00
Marcin Kurczewski
f6df009085 Split EntityConverter to separate strategies
Reflection turned out to be bad, since I cannot implement my own method
in entities, like Post::setUser() instead of Post::setUserId().
2014-10-18 18:48:22 +02:00
Marcin Kurczewski
6035cf89b7 Added transaction manager 2014-10-18 18:48:22 +02:00
Marcin Kurczewski
f71fd106f0 Fixed privilege checks for changing avatars 2014-10-18 18:48:22 +02:00
Marcin Kurczewski
20b3dfc76d Added additional type safety 2014-10-18 18:48:22 +02:00
Marcin Kurczewski
3e1aaebf89 Fixed account activation for first user
Until now, AuthService used to check for empty e-mail in order to tell
whether an account is activated. This was wrong for following scenario:

1. User doesn't enter any e-mail.
2. Because he is about to become the first user to register, he will
   become an administrator.
3. Administrators don't need to confirm their e-mail address. Activation
   e-mail is not sent, code for e-mail activation is run instead.
4. The user succeeds to create an e-mail-less administrator account.
5. The user fails to login due to unconfirmed e-mail.
6. The code that activates an e-mail just moves unconfirmed e-mail to
   primary e-mail. That was the bug, there's no e-mail to confirm.

Things got (hopefully) simpler now, since I added separate column for
indicating whether account is activated.
2014-10-18 18:48:22 +02:00
Marcin Kurczewski
cf0312ce43 Changed EntityConverter inner workings
In order to understand data types returned by DB engine better,
EntityConverter was changed to use getter/settter methods instead of raw
properties. That way, the methods inside entities can cast to desired
data types when accessed.
2014-10-18 18:48:21 +02:00
Marcin Kurczewski
f0a077f2b4 Fixed vendor autoloader placement 2014-10-18 18:48:21 +02:00
Marcin Kurczewski
4526345e5b Switched to sqlite (closed #38) 2014-10-18 18:48:21 +02:00
Marcin Kurczewski
d450f5794e Fixed magic strings in Dao layer 2014-10-18 18:48:21 +02:00
Marcin Kurczewski
2d9865f1d3 Fixed unused variable in abstract search service 2014-10-18 18:48:21 +02:00
Marcin Kurczewski
0548890d97 Introduced entity property getters/setters 2014-10-18 18:48:21 +02:00
Marcin Kurczewski
847117a408 Shifted data transform responsibility from service 2014-10-18 18:48:21 +02:00
Marcin Kurczewski
6ce7beffd2 Fixed frontend behavior after edited user name 2014-10-18 18:48:20 +02:00
Marcin Kurczewski
cb08f68469 Fixed losing entity IDs upon updates 2014-10-18 18:48:20 +02:00
Marcin Kurczewski
29b173de65 Simplified UserService 2014-10-18 18:48:20 +02:00
Marcin Kurczewski
f81fe6bb65 Simplified EmailService 2014-10-18 18:48:20 +02:00
Marcin Kurczewski
56cd1b965a Added info about activation to account settings 2014-10-18 18:48:20 +02:00
Marcin Kurczewski
0283b2055d Fixed editing account settings 2014-10-18 18:48:20 +02:00
Marcin Kurczewski
fdfb4acbf9 Refactored config 2014-10-18 18:48:20 +02:00
Marcin Kurczewski
2fab532fde Fixed authentication with credentials 2014-10-18 18:48:19 +02:00
Marcin Kurczewski
c117367974 Added IValidatable; moved validation to FormData
I still struggle to find out how to deal with arguments like
$userNameOrEmail. Should I trim() them in controllers, or in service?
If I do it in service, shouldn't all of such validation belong in there?
2014-10-18 18:48:19 +02:00
Marcin Kurczewski
65da8e9948 Added missing thumbnail generators 2014-10-18 18:48:19 +02:00
Marcin Kurczewski
109aa1c39e Refactored thumbs; fixed setting custom avatars 2014-10-18 18:48:19 +02:00
Marcin Kurczewski
45e18a9ba3 Improved PHP style 2014-10-18 18:48:19 +02:00
Marcin Kurczewski
a5c89bc48e Improved avatar loading speed 2014-10-18 18:48:19 +02:00
Marcin Kurczewski
85a026c37b Added e-mail confirmation and password reset 2014-10-18 18:48:19 +02:00
Marcin Kurczewski
121c2f80dc Refactored AuthService and UserService 2014-10-18 18:48:19 +02:00
Marcin Kurczewski
2ed9f969f2 Added presenter placeholders 2014-10-18 18:48:19 +02:00
Marcin Kurczewski
9a7082c269 Added token purpose check to authentication 2014-10-18 18:48:19 +02:00
Marcin Kurczewski
e6b37d8e57 Added browsing settings 2014-10-18 18:48:18 +02:00
Marcin Kurczewski
ee2ca7fbaf Added account settings management and avatars 2014-10-18 18:48:18 +02:00
Marcin Kurczewski
73214396ce Added test for basic controller validity 2014-10-18 18:48:18 +02:00
Marcin Kurczewski
7c4eddd810 Removed PRIVILEGE_ prefix from constants 2014-10-18 18:48:18 +02:00
Marcin Kurczewski
8e8e983f28 Refactored privilege system 2014-10-18 18:48:18 +02:00
Marcin Kurczewski
c70554330c Added Injector class 2014-10-18 18:48:18 +02:00
Marcin Kurczewski
926c5af0d6 Refactored controller DTOs 2014-10-18 18:48:18 +02:00
Marcin Kurczewski
4c0a408152 Added account removal 2014-10-18 18:48:18 +02:00
Marcin Kurczewski
eadd649ad0 Refactored frontend authentication system 2014-10-18 18:48:18 +02:00
Marcin Kurczewski
7a8badd2ed Fixed logging in users that no longer exist 2014-10-18 18:48:18 +02:00
Marcin Kurczewski
de31770c87 Added basic privilege system 2014-10-18 18:48:18 +02:00
Marcin Kurczewski
2ecb79a2fa Added passive authorization 2014-10-18 18:48:18 +02:00
Marcin Kurczewski
03fbe0990a Added user view placeholder templates 2014-10-18 18:48:18 +02:00
Marcin Kurczewski
ee9fde5402 Added proof of concept for pagination and search 2014-10-18 18:48:17 +02:00