Commit graph

121 commits

Author SHA1 Message Date
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
Marcin Kurczewski
aed090da7d Fixed user name validation 2014-10-18 18:48:17 +02:00
Marcin Kurczewski
e6ebac8277 Moved config.ini to data 2014-10-18 18:48:17 +02:00
Marcin Kurczewski
5573c49985 Moved backend DI definitions 2014-10-18 18:48:17 +02:00
Marcin Kurczewski
e13db65f68 Paid off technical debt regarding validation 2014-10-18 18:48:17 +02:00
Marcin Kurczewski
ae93b187ac Fixed bugs in registration 2014-10-18 18:48:17 +02:00
Marcin Kurczewski
ffdbf843ac Made AutoLoader work only for szurubooru namespace 2014-10-18 18:48:17 +02:00
Marcin Kurczewski
03b65c196c Worked on user registration 2014-10-18 18:48:16 +02:00
Marcin Kurczewski
c7051a40e9 Added TimeService 2014-10-18 18:48:16 +02:00
Marcin Kurczewski
538b88952e Added EmailService 2014-10-18 18:48:16 +02:00
Marcin Kurczewski
7be8061aa8 Fixed serializing classes in Dispatcher 2014-10-18 18:48:16 +02:00
Marcin Kurczewski
1104eaf591 Fixed deprecated MongoDB option 2014-10-18 18:48:16 +02:00
Marcin Kurczewski
0889472bf3 Added protection against fatal errors for AJAX 2014-10-18 18:48:16 +02:00
Marcin Kurczewski
c83c609b51 Moved validation to services 2014-10-18 18:48:16 +02:00
Marcin Kurczewski
cb82416f27 Simplified controller repository 2014-10-18 18:48:16 +02:00
Marcin Kurczewski
1f6017aae7 Added fallback anonymous user to authorization 2014-10-18 18:48:16 +02:00
Marcin Kurczewski
2335037a9c Added view proxies 2014-10-18 18:48:16 +02:00
Marcin Kurczewski
18d9c21435 Added TokenService and UserService 2014-10-18 18:48:16 +02:00
Marcin Kurczewski
45e32c4e50 Implemented InputReader 2014-10-18 18:48:16 +02:00
Marcin Kurczewski
4202ae2ec7 Added HTTP response codes 2014-10-18 18:48:16 +02:00
Marcin Kurczewski
db949dd361 Added proof of concept for authorization system 2014-10-18 18:48:15 +02:00
Marcin Kurczewski
ff310f56c5 Changed config.ini hierarchy 2014-10-18 18:48:15 +02:00
Marcin Kurczewski
f3096ffc5d Changed object initialization
DI FTW
2014-10-18 18:48:15 +02:00
Marcin Kurczewski
6265a09d39 Added dependency injection engine 2014-10-18 18:48:15 +02:00
Marcin Kurczewski
78f57e5fc4 Config can now parse .ini files 2014-10-18 18:48:15 +02:00
Marcin Kurczewski
ebc4fbba61 Added proof of concept for controllers system 2014-10-18 18:48:15 +02:00
Marcin Kurczewski
10e6c9f11f Fixed routing to class methods 2014-10-18 18:48:15 +02:00
Marcin Kurczewski
e81391a29a Added ability for routes to return output 2014-10-18 18:48:15 +02:00
Marcin Kurczewski
011d803bd0 Added Config; concealed MongoDB dependency 2014-10-18 18:48:15 +02:00
Marcin Kurczewski
1e3e3f94d8 Added router 2014-10-18 18:48:15 +02:00
Marcin Kurczewski
b7de8ae0bf Added proof of concept for Dao system
Fixup first commit
2014-10-18 18:48:15 +02:00