Commit graph

646 commits

Author SHA1 Message Date
Marcin Kurczewski
5d9513bac0 Modified post path management 2014-05-13 00:01:28 +02:00
Marcin Kurczewski
5514ed4fd6 Fixed exception throw in UserModel 2014-05-12 23:04:35 +02:00
Marcin Kurczewski
b8bb2c865e Moved setRelationsFromText logic to controller 2014-05-12 22:39:14 +02:00
Marcin Kurczewski
4395087a7c Fixed confirming user registration by staff 2014-05-12 20:10:19 +02:00
Marcin Kurczewski
d8808df091 Fixed canEditAnything method in EditUserJob 2014-05-12 19:39:58 +02:00
Marcin Kurczewski
3cd07a38ca Fixed password reminder 2014-05-12 19:30:16 +02:00
Marcin Kurczewski
a89eb97c9d Added protection against 2 users having same mail 2014-05-12 19:17:53 +02:00
Marcin Kurczewski
96ebd2c89f Fixed entity retrievers 2014-05-12 19:00:04 +02:00
Marcin Kurczewski
3596a8cdc7 Fixed tag renaming 2014-05-12 18:30:31 +02:00
Marcin Kurczewski
8e465720bc Fixed mass tag and tag renaming 2014-05-12 18:00:24 +02:00
Marcin Kurczewski
098f11bd09 Increased API readability
- Removed Abstract*Job hierarchy
- Introduced EntityRetrievers
- Introduced JobPager
- Moved files around
2014-05-12 18:00:24 +02:00
Marcin Kurczewski
484adbbf49 Added argument checking system 2014-05-12 15:15:50 +02:00
Marcin Kurczewski
0e6ed74682 Fixed post safety user settings 2014-05-12 15:15:50 +02:00
Marcin Kurczewski
c377ac8216 Removed unused classes 2014-05-12 14:47:44 +02:00
Marcin Kurczewski
6f6ce2ad24 Removed unused method 2014-05-12 14:47:44 +02:00
Marcin Kurczewski
20ad5da89a Fixed mass tag redirect 2014-05-12 00:22:02 +02:00
Marcin Kurczewski
4ba83e6834 Changed job arguments convention back
Restored JobArgs approach. Previous introduction of hierarchic argument
definitions has backfired: it was confusing what class to take arguments
from, the concept of sharing arguments between different jobs was
unintelligible and one never knew where given argument was actually
defined.

This appraoch makes it easier to maintain the arguments list and
simplifies the code a lot.
2014-05-12 00:13:18 +02:00
Marcin Kurczewski
8aa499a0b9 Fixed automatic featuring post
- Fixed main page view
- Code moved from StaticPagesController to PostModel
- Code split into semantically meaningful methods
- Allowed anonymous featuring through API
- Added protection against automatic featuring of hidden post
2014-05-11 23:43:35 +02:00
Marcin Kurczewski
6b40d6be7e Fixed assert error message; added new method 2014-05-11 23:39:00 +02:00
Marcin Kurczewski
72821157dd Fixed most used tag retrieving 2014-05-11 21:57:41 +02:00
Marcin Kurczewski
9cc8d03376 Finished token validation 2014-05-09 21:29:16 +02:00
Marcin Kurczewski
9882e84aa6 Finished user validation; increased readability 2014-05-09 21:23:54 +02:00
Marcin Kurczewski
26e27e3339 Ban job returns user 2014-05-09 21:08:34 +02:00
Marcin Kurczewski
39f49fc539 Fixed post score validation 2014-05-09 21:08:34 +02:00
Marcin Kurczewski
343268d029 Improved model performance a little bit 2014-05-09 21:08:33 +02:00
Marcin Kurczewski
8ee80ea170 Continued work on getter/setters: post cached keys 2014-05-09 20:29:14 +02:00
Marcin Kurczewski
a14afd8e27 Improved names of entity retrieval methods 2014-05-08 08:54:53 +02:00
Marcin Kurczewski
e4ee4589a8 Fixed/refactored tag validation 2014-05-08 08:54:53 +02:00
Marcin Kurczewski
acf8cf28e8 Made anonymous upload parameter optional 2014-05-08 08:54:48 +02:00
Marcin Kurczewski
20ee47e596 Continued work on getter/setters: staff confirm 2014-05-07 21:30:38 +02:00
Marcin Kurczewski
16942d9d19 Continued work on getter/setters: timestamps 2014-05-07 21:30:37 +02:00
Marcin Kurczewski
a619662585 Continued work on getter/setters: post file stats 2014-05-07 21:30:37 +02:00
Marcin Kurczewski
c4bcc4b85b Continued work on getter/setters: post names 2014-05-07 21:30:37 +02:00
Marcin Kurczewski
878079030d Continued work on getter/setters: post uploaders 2014-05-07 21:30:37 +02:00
Marcin Kurczewski
8d8e92b84e Continued work on getter/setters: post visibility 2014-05-07 21:30:37 +02:00
Marcin Kurczewski
75704ef0da Continued work on getter/setters: post dimensions 2014-05-07 21:30:37 +02:00
Marcin Kurczewski
509bf44619 Continued work on getter/setters: post sources 2014-05-07 21:30:37 +02:00
Marcin Kurczewski
329f6a0259 Fixed account activation links 2014-05-07 21:30:37 +02:00
Marcin Kurczewski
1bbba5de3c Fixed displaying errors in registration page 2014-05-07 21:30:37 +02:00
Marcin Kurczewski
323138bd98 Fixed issues with logging
- Fixed log file name template
- Fixed buffering changes when running add/edit jobs in batch
2014-05-07 21:30:37 +02:00
Marcin Kurczewski
404bd979f4 Fixed issues with confirmation e-mails 2014-05-07 21:30:37 +02:00
Marcin Kurczewski
e152c9baca Fixed multiple problems with user jobs 2014-05-07 21:30:37 +02:00
Marcin Kurczewski
ea87bab896 Fixed comment preview 2014-05-07 17:58:24 +02:00
Marcin Kurczewski
410237d678 Better privilege checking for batch operations 2014-05-07 17:58:23 +02:00
Marcin Kurczewski
cd437ca036 Fixed move_uploaded_file bullshit 2014-05-07 17:58:23 +02:00
Marcin Kurczewski
42b8049ae5 Fixed privileges in user view 2014-05-07 17:58:23 +02:00
Marcin Kurczewski
e610963d4b Fixed post scoring privileges 2014-05-07 17:58:23 +02:00
Marcin Kurczewski
0ea81b8f69 Added single argument setter to jobs 2014-05-07 17:58:23 +02:00
Marcin Kurczewski
875eeaf4d4 Fixed privileges for some user jobs in API 2014-05-07 17:58:23 +02:00
Marcin Kurczewski
c005da2e6d Refactored post content edit jobs; added unit test 2014-05-07 17:58:23 +02:00
Marcin Kurczewski
431d881962 Added data cleanup after each test run 2014-05-07 17:58:23 +02:00
Marcin Kurczewski
1600589793 Moved max post source length to config 2014-05-07 17:58:23 +02:00
Marcin Kurczewski
b7a42d9f6a Fixed privileges for some jobs 2014-05-07 17:58:23 +02:00
Marcin Kurczewski
26f2c46e5b More restrictive privilege system 2014-05-07 17:58:23 +02:00
Marcin Kurczewski
04481122ce Improved test environment sandboxing 2014-05-07 17:58:23 +02:00
Marcin Kurczewski
eebb862332 Fixed hardcoded post permalink syntax 2014-05-07 17:58:23 +02:00
Marcin Kurczewski
8009c16f0c Refactored comment model, fixed anonymous previews 2014-05-07 17:58:22 +02:00
Marcin Kurczewski
7df8a6fa3b Continued work on getter/setters: entity IDs 2014-05-07 17:58:18 +02:00
Marcin Kurczewski
9ad1507b53 Fixed backticks in PostSearchParser 2014-05-05 18:03:54 +02:00
Marcin Kurczewski
8c3feaeccf Unit tests for comments; fixed anonymous comments 2014-05-05 18:03:17 +02:00
Marcin Kurczewski
76d544572c Made database retrieval conscious about data types 2014-05-05 18:02:37 +02:00
Marcin Kurczewski
a74b133cfc Moved security disabling from Api to Access 2014-05-05 17:47:31 +02:00
Marcin Kurczewski
f254e7bb1e Logger path accepts simple templates 2014-05-05 17:47:31 +02:00
Marcin Kurczewski
c64d97fae6 Added return values for models::save 2014-05-05 17:47:30 +02:00
Marcin Kurczewski
05a3cf927b Moved validation to entities 2014-05-05 17:47:30 +02:00
Marcin Kurczewski
097deb52bd Fixed decrypting text with trailing whitespace 2014-05-05 17:47:30 +02:00
Marcin Kurczewski
7784be1838 Fixed login when mail activation is enabled 2014-05-05 17:47:30 +02:00
Marcin Kurczewski
505d08bb08 Added unit test system 2014-05-05 17:47:30 +02:00
Marcin Kurczewski
b885411b2e Encapsulated a few entity getters and setters 2014-05-05 17:47:30 +02:00
Marcin Kurczewski
ee757f1149 Renamed LogHelper to Logger 2014-05-05 17:47:30 +02:00
Marcin Kurczewski
cde25c8a64 Removed obsolete code 2014-05-05 17:47:30 +02:00
Marcin Kurczewski
d3beb8bc53 Implemented new enums 2014-05-05 17:47:30 +02:00
Marcin Kurczewski
977989ffed Added one-time save to posts/users adding/editing 2014-05-05 17:47:30 +02:00
Marcin Kurczewski
b02c55e52c Fixed post uploading 2014-05-05 17:47:30 +02:00
Marcin Kurczewski
458aac971d Removed trash HTML 2014-05-05 17:47:30 +02:00
Marcin Kurczewski
67e4272f3e Changes to privilege system 2014-05-05 17:47:30 +02:00
Marcin Kurczewski
47f7ff3490 Moved account activation and password reset to API 2014-05-04 18:32:58 +02:00
Marcin Kurczewski
893e841a87 Organized password reset and account activation 2014-05-04 18:32:57 +02:00
Marcin Kurczewski
83239a492d Moved account registering to API 2014-05-04 18:32:57 +02:00
Marcin Kurczewski
4c66ca2b01 Fixed displaying login errors 2014-05-04 15:11:58 +02:00
Marcin Kurczewski
b0bbdde112 Moved user account settings to API 2014-05-04 15:11:58 +02:00
Marcin Kurczewski
816859c3e3 Moved user retrieval to API 2014-05-04 13:43:52 +02:00
Marcin Kurczewski
9e2e3ceb7f Simplified views in UserController 2014-05-04 12:12:06 +02:00
Marcin Kurczewski
8b44a248cc Moved user account removal to API 2014-05-04 10:57:12 +02:00
Marcin Kurczewski
48e274234e Moved user registration accepting to API 2014-05-04 10:47:56 +02:00
Marcin Kurczewski
243f22542d Moved user listing to API 2014-05-04 10:32:32 +02:00
Marcin Kurczewski
f74213bafb Reduced boilerplate by using default privileges 2014-05-04 10:24:59 +02:00
Marcin Kurczewski
588efcb908 Moved user (un)banning to API 2014-05-04 10:16:05 +02:00
Marcin Kurczewski
c86854dcb1 Moved user flagging to API 2014-05-04 10:15:29 +02:00
Marcin Kurczewski
d2319465c1 Moved tag merging to API 2014-05-04 10:03:21 +02:00
Marcin Kurczewski
5d2c5a2053 Moved tag renaming to API 2014-05-04 10:03:03 +02:00
Marcin Kurczewski
5c003588fa Made tag retrieval use entity conversion again
Previously engine used raw database rows for performance boost. The
benefits were negligibly small, therefore it was changed so that it
returns full entities again. That way serializing job return values
for HTTP API should be easier in the future.
2014-05-04 09:48:51 +02:00
Marcin Kurczewski
70f187c431 Moved listing tag relations to API 2014-05-04 09:48:51 +02:00
Marcin Kurczewski
ebfa0a71aa Removed obsolete method call
(Removed code is already executed in tag editing jobs.)
2014-05-04 09:45:41 +02:00
Marcin Kurczewski
26323f996b Moved tag autocompleting to API 2014-05-04 09:45:41 +02:00
Marcin Kurczewski
1787604ac1 Fixed filtering logs 2014-05-04 09:12:23 +02:00
Marcin Kurczewski
923207fdfa Organized common paging code into abstraction 2014-05-04 09:11:39 +02:00
Marcin Kurczewski
97c17c68a0 Moved tag listing to API 2014-05-04 08:42:18 +02:00
Marcin Kurczewski
259eabfaaa Merged branch 'master' into api 2014-05-03 23:29:16 +02:00
Marcin Kurczewski
3d6564f7a8 Fixed erroreous redirects 2014-05-03 23:27:00 +02:00
Marcin Kurczewski
0b058565ba Fixed activation, password reset and registration 2014-05-03 23:23:13 +02:00
Marcin Kurczewski
c3a20ad721 Added unused tag purging in post tag edit jobs 2014-05-03 22:53:55 +02:00
Marcin Kurczewski
425517f0ae Rearranged class and file names 2014-05-03 22:18:41 +02:00
Marcin Kurczewski
758f5bd134 Moved post content and thumbnail retrieval to API 2014-05-03 22:14:00 +02:00
Marcin Kurczewski
9f4d97aa23 Moved post retrieval to API 2014-05-03 20:34:07 +02:00
Marcin Kurczewski
cebff0ef4e Moved post featuring to API 2014-05-03 19:53:33 +02:00
Marcin Kurczewski
ee79e1753e Moved post scoring to API 2014-05-03 19:53:20 +02:00
Marcin Kurczewski
2eaab49d35 Moved post (un)favoriting to API 2014-05-03 19:53:19 +02:00
Marcin Kurczewski
db8eab1c5c Moved post removal to API 2014-05-03 19:53:03 +02:00
Marcin Kurczewski
38a9e154f8 Moved post un/hiding to API 2014-05-03 19:52:39 +02:00
Marcin Kurczewski
c0dce6775e Moved post flagging to API 2014-05-03 19:26:00 +02:00
Marcin Kurczewski
b2b7064ff0 Moved post editing to API 2014-05-03 19:26:00 +02:00
Marcin Kurczewski
6ae4cea8bb Moved post upload to API 2014-05-03 19:26:00 +02:00
Marcin Kurczewski
f383a5ed21 Moved JobArgs to Jobs
Reason: trying to make unique string for every possible argument in
global fashion is difficult. For example it would make sense for
EditPostRelationsJob to accept argument named "post-ids", but it
wouldn't make much sense for AddPostJob to accept "post-ids" since it
doesn't tell much. Thus, common arguments are going to be defined in
top-level AbstractJob for ease of control, while more job-specific
arguments are going to be specified in respective job implementations.
2014-05-03 19:25:59 +02:00
Marcin Kurczewski
162b131435 Moved tag toggling to API 2014-05-03 19:25:59 +02:00
Marcin Kurczewski
7c1b8ca4d5 Renamed LogController methods and moved to API 2014-05-03 19:25:59 +02:00
Marcin Kurczewski
aeb73e2a5c Renamed IndexController class and methods 2014-05-03 19:25:59 +02:00
Marcin Kurczewski
e857032a73 Made logout redirect to last visted page 2014-05-03 19:25:59 +02:00
Marcin Kurczewski
8b8564309d Split login method into View and Action 2014-05-03 19:25:59 +02:00
Marcin Kurczewski
ffeefd06c6 Moved post listing to API 2014-05-03 19:25:59 +02:00
Marcin Kurczewski
c0a7fe5209 Moved comment listing to API 2014-05-03 19:25:59 +02:00
Marcin Kurczewski
6a28be5e3e Moved comment removal to API 2014-05-03 19:25:59 +02:00
Marcin Kurczewski
0ad39c241e Fixed start time placement 2014-05-02 13:51:20 +02:00
Marcin Kurczewski
16c5d6961b More robust argument handling 2014-05-02 09:51:34 +02:00
Marcin Kurczewski
3cdaa85511 Added subprivilege authentication 2014-05-02 09:42:03 +02:00
Marcin Kurczewski
334cca8197 Changed default access rank from admin to none 2014-05-02 08:14:16 +02:00
Marcin Kurczewski
902aed7278 Introducing API
Right now there's a lot of messy code in controllers. Furthermore, there
is no way to interact with szurubooru via vanilla HTTP, since API is
next to non-existent. So, basing upon my experiences from another
project, I plan to:

- Create actual API. It is going to consist of well-defined "jobs" that
  do things currently done by controllers. Benefits of such approach are
  as follows:
  - defining them in their own classes allows to clean up code a lot,
  - it allows to abstract from input method (POST data, part of URL,
	whatever), and leave processing of these to controllers,
  - it allows to make proxy controller, whose purpose would be to let
	users interact with API (jobs) directly in well-documented and
	consistent way.
- Make controllers responsible only for mediating between views and API.
  Behavior of these may remain inconsistent, since views they're talking
  to are also messy to begin with. Such controllers might be removed
  altogether in the future in favor of making views talk to API directly
  through previously mentioned ApiController.
- Organize all sorts of privilege checking and possibly other stuff into
  methods within jobs.
- Actually distinguish POST from GET requests.
- Leave POST-only controller methods as Actions, but rename GET-only
  methods to Views. Example: editAction for editing comments, but
  listView for showing comment list. The choice of these suffixes might
  be subject to changes in future.
- Get rid of ?json and $context->transport. They now look like disease
  to me.

This commit introduces job system and converts CommentController to use
the new API.
2014-05-01 23:35:05 +02:00
Marcin Kurczewski
feec48ed83 AJAX doesn't rely on StatusHelper
Since the purpose that StatusHelper was mainly created for no longer
holds, it was simplified to Messenger. It is now is used to transport
simple messages to views and still transports info whether the message
is about success or failure.
2014-05-01 23:34:44 +02:00
Marcin Kurczewski
925fccbd17 Moved authentication check to Access 2014-05-01 22:11:05 +02:00
Marcin Kurczewski
0a7fc387ac Simplified auth 2014-05-01 22:11:05 +02:00
Marcin Kurczewski
e673bdb50c Fixed privilege checking 2014-05-01 16:06:38 +02:00
Marcin Kurczewski
d08c15b9e7 Refactor to thumbnail generating 2014-04-30 09:54:04 +02:00
Marcin Kurczewski
c52531e8fc Increasing readability 2014-04-30 08:08:24 +02:00
Marcin Kurczewski
c18c9ec680 Lines wrapped again 2014-04-30 00:11:53 +02:00
Marcin Kurczewski
396ea97cad PrivilegesHelper shortened to Access
Methods are shorter, too
2014-04-29 23:53:47 +02:00
Marcin Kurczewski
81e43286b5 Newest chibi-core 2014-04-29 21:35:29 +02:00
Marcin Kurczewski
da1f5d8ab2 Split long lines in views 2014-04-27 16:01:50 +02:00
Marcin Kurczewski
60208407ea Shorthand php echo 2014-04-27 16:01:50 +02:00
Marcin Kurczewski
f495774be4 New exception style; split long lines in php 2014-04-27 16:01:45 +02:00
Marcin Kurczewski
cc51d943e2 Fixed CBC encryption - added IV to cookie 2014-04-21 09:31:59 +02:00
Marcin Kurczewski
f1bc9c18b9 Fixed retrieving display string from enums 2014-04-21 00:17:16 +02:00
Marcin Kurczewski
1ec5161faf Fixed post showing on MySQL driver 2014-04-21 00:16:14 +02:00
Marcin Kurczewski
4847448a26 Little fixes for small layouts 2014-04-20 11:39:26 +02:00
Marcin Kurczewski
70f55f65b4 Revived MySQL support 2014-04-16 13:05:24 +02:00
Marcin Kurczewski
ccf7464d6f Changed ECB to CBC 2014-04-12 17:04:32 +02:00
Marcin Kurczewski
2b33bf44d2 Text case conversion moved to gist 2014-04-12 16:25:07 +02:00
Marcin Kurczewski
d3e135ea15 Enhanced support for new video posts (closed #75) 2014-04-09 14:19:51 +02:00
Marcin Kurczewski
74b2f935c3 Fixed video dimensions 2014-04-08 17:09:13 +02:00
Marcin Kurczewski
af1828a9e8 Added HTML5 video support (closed #75) 2014-04-08 16:54:36 +02:00
Marcin Kurczewski
78d0b07c5c Version upgrade (0.7.1) 2014-03-13 20:53:17 +01:00