Commit graph

600 commits

Author SHA1 Message Date
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