75f70f8182
[ENTITY][Posting] Remove GSActorToRemoteURL, Fix URL database store
2021-09-14 13:13:25 +01:00
3f61537140
[ENTITY] Split Attachment in various new entities
...
Remove Attachment Scope
Fixed some minor bugs
Scope will be implemented later in v3. It doesn't make sense to have
the scope handling being per attachment. Different actors can post
the same attachment with different scopes. The attachment controller
will assume the highest level of scope applied to the attachment and
the rest will be handled at the note level.
Motivation:
* Remove title from attachment, as it's part of the relation between attachment and note.
* Remove actor from attachment, many actors may publish the same attachment.
* Remove is_local from attachment, as it's part of the relation between attachment and note.
* Remove remote_url from attachment, different urls can return the same attachment.
Addition:
* Attachment now has a lives attribute, it's a reference counter with a nicer name
* GSActorToAttachment
* GSActorToRemoteURL
* RemoteURL
* RemoteURLToNote
* RemoteURLToAttachment
* AttachmentToNote now has a title attribute
2021-09-14 13:13:24 +01:00
39006fb6b5
[DB][Attachments] Use count function rathar than fetch and count, rename to refCount, rather than countDepencies
2021-09-14 13:13:24 +01:00
6728dd40b0
[ENTITY] Add JsonSerializable interface to Entity base class and implement it for the Note class
2021-09-14 13:13:24 +01:00
21362d1e4d
[ATTACHMENTS] Add dependencies counter
2021-09-14 13:13:21 +01:00
3334aca7b9
[Avatar] Move entity from core to component
2021-09-14 13:13:20 +01:00
27f2fbdade
[ENTITY] Refactor LocalUser::changePassword for easier use
2021-09-14 13:13:20 +01:00
7bd88bd101
[AUTOGENERATED] Update entity fields for ResetPasswordRequest entity
2021-09-14 13:13:17 +01:00
ccd5ebf8e4
[CORE] Add passowrd reset and forgot password functionality
2021-09-14 13:13:17 +01:00
6d22932092
[ENTITY][LocalUser] Add method 'findByNicknameOrEmail'
2021-09-14 13:13:16 +01:00
e77498ac19
[ENTITY] Remove 'normalized_nickname' field from GSActor as that feature will be moved to a plugin
2021-09-14 13:13:15 +01:00
e2f61b05d8
[ENTITY] Fix foreign key type in Cover entity, as found by tests
2021-09-14 13:13:12 +01:00
80cde06f4b
[MEDIA][Thumbnail] Fix non-instantiated variable
2021-09-14 13:13:04 +01:00
a5348f2427
[MEDIA][AttachmentThumbnail] Add mimetype to Entity
2021-09-14 13:13:04 +01:00
861732176e
[Media] Support any kind of thumbnails in the Core
...
Sanitize Attachments instead of Validate (part 1)
Ensure the intended filetypes and mimetypes during Vips conversions (part 1)
Various bug fixes
2021-09-14 13:13:03 +01:00
481e953cde
[Media] File quota should be triggered by the Core
2021-09-14 13:13:03 +01:00
72dcff22f7
[MEDIA] We need permissions to run chmod in directories
...
It's better to have in the filename data that we couldnt't otherwise rapidly retrieve
2021-09-14 13:13:03 +01:00
6ecdaa5d72
[MEDIA] Fix database misses on thumbnail retrieval
...
We were storing the real scaling values instead of the predictions, but the core is never able to pre-compute the real values generated by the encoding plugins so, we have to rely on our own aproximation function ported from v2
2021-09-14 13:13:03 +01:00
c8cf8c3f13
[FILE][TemporaryFile] Fix various issues now that we also have Symfony's file abstractions
2021-09-14 13:13:03 +01:00
74f477489b
[TESTS] Raise test coverage for App\Controller\Network to 100% and fixup related code
2021-09-14 13:13:02 +01:00
d31c3b1784
[AUTOGENERATED] Update autogenerated code
2021-09-14 13:13:01 +01:00
bd249b508b
[ENTITY] Add 'normalized_nickname' to GSActor, the result of Nickname::normalize, so we can make sure we don't have very similar nicknames duplicated
2021-09-14 13:12:59 +01:00
3fab198c04
[ENTITY] Add uniqueness constraint to Attachment::file_hash
2021-09-14 13:12:58 +01:00
2b83a4b627
[UTILS][TemporaryFile] Change way TemporaryFile takes arguments and it's internal implementation
2021-09-14 13:12:58 +01:00
8f43c8b405
[AUTOGENERATED] Update auto generated code
2021-09-14 13:12:57 +01:00
4fcccb1d1c
[CORE][ImageEncoder] Add width and height back in attachment entity and allow for differently sized thumbs
...
The strategy adopted involves predicting the thumb size as we did in v2 before having vips resize
2021-09-14 13:12:56 +01:00
38cf8f8efe
[ENTITY] Change foreign key definition to new format for cover and profile_color tables
2021-09-14 13:12:56 +01:00
7509913fcf
[ENTITY] Add field size to attachments, used for quota calculations
2021-09-14 13:12:54 +01:00
e9b2b18093
[Avatar] Implement avatar deletion
2021-09-14 13:12:53 +01:00
88e5cec8fc
[ENTITY][GSActor] Fix getAvatarUrl method
2021-09-14 13:12:53 +01:00
30107de079
[Embed] Fix plugin. Only attempt to show an image, if we have one
2021-09-14 13:12:52 +01:00
a7ef2babe6
[AUTOGENERATED] Update autogenerated code
2021-09-14 13:12:52 +01:00
9a7f1358c2
[ENTITY] Add utils to Attachment and AttachmentThumbnail to get the corresponding URL and html representation parameters
2021-09-14 13:12:51 +01:00
e6c6e7afd7
[AVATAR] Fix JS cropping script and save square image, in case other themes need it
2021-09-14 13:12:22 +01:00
d2bb5bba14
[ImageEncoder] Move DB::persist call to AttachmentThumbnail
2021-09-14 13:12:22 +01:00
0eaccc32fe
[ATTACHMENTS] Further refactoring
...
Some key points:
- Components and Plugins shouldn't extend Module directly
- Avatars should be fetched via GSActor ID, not by nickname as that isn't unique
- Avatar now is a separate Component
- Common file utilities are now to be placed in Core\GSFile, this will
handle storage and trigger validation
- Some bug fixes
2021-09-14 13:11:51 +01:00
cdef6858ce
[ENTITY] Cache AttachmentThumbnail query result
2021-09-14 13:11:51 +01:00
65999bd183
[Poll] Move tables from core to plugin
2021-09-14 13:11:51 +01:00
716ca063d5
[ImageThumbnail] Finish image thumbnailing functionality
2021-09-14 13:11:51 +01:00
4358656c55
[ImageThumbnail] Implement image resizing with Intervention/Image
2021-09-14 13:11:50 +01:00
5579f4fa5d
[MEDIA] Rename File to Attachment
2021-09-14 13:11:50 +01:00
c44443b52c
[AUTOGENERATED] Update autogenerated code
2021-09-14 13:11:50 +01:00
e7ed325ac6
[MEDIA] Refactor File as Attachment
2021-09-14 13:11:49 +01:00
ccf3aa990a
[MODULES] Introduce the concept of abstract modules to V3
...
Introduce placeholder for abstract upload and thumb modules
Temporarily supress some bugs
2021-09-14 13:11:45 +01:00
ea802621aa
[ENTITY] Remove extraneous File_thumbnail.php file
2021-09-14 13:10:55 +01:00
faa362e2e2
[DB] Remove unique constraint from GSActor.nickname and fix register and related functionality
2021-09-14 13:10:23 +01:00
78548365da
[WEB] Fix translations and small inconsistency when opening on web
2021-09-14 13:10:23 +01:00
2174f288d1
[DB] Fix Doctrine errors due to lack of column uniqueness
...
So, Doctrine doesn't like that `GSActorTag.tag` is not unique, even
though composite key `[tagger, tag]` is. `tag` can't unique, but
doctrine doesn't understand this. This seems like a Doctrine bug that
should be investigated. For now we'll just not mark it as a foreign
key
2021-09-14 13:10:20 +01:00
c894a4faa4
[DB] Make Note.source reference NoteSource.code, the primary key
2021-09-14 13:10:20 +01:00
up201706832
f9443f1e87
[AUTH][REMEMBER-ME] Changed name of column in rememberme_token database table to fix bug
2021-09-14 13:10:19 +01:00
Daniel
afae038cff
[ProfileColor] Added Profile Color entity, color form and db store/load to color settings controler
2021-09-14 13:10:19 +01:00
João Brandão
5516a77b33
[UI][TIMELINES] Refactored query for public stream
2021-09-14 13:10:19 +01:00
Angelo D. Moura
0c5941f515
[Directory] Almost finishied creating the /actors stream - problems with the css files
2021-09-14 13:10:17 +01:00
Daniel
fdc2bc39d0
[Cover] Input restrictions, Code cleanup
2021-09-14 13:10:17 +01:00
Daniel
aeec9149fc
[Cover] Cover route, cover now renders
2021-09-14 13:10:16 +01:00
Daniel
1cfe64cc25
[Cover] Added Cover Entity, updated form handler
...
Basically the same as the avatar
2021-09-14 13:10:16 +01:00
Daniel
7a299162e1
[Poll] Polls now have an associated note, poll templates, start_show_styles event, started css
2021-09-14 13:10:13 +01:00
Daniel
50ec306243
[Poll] Added file headers
2021-09-14 13:10:12 +01:00
Daniel
ffb4b9df23
[Poll] Added modified param for Poll/Poll response, added PollTest
2021-09-14 13:10:12 +01:00
Daniel
f34fb9c7b9
[Poll] Added variable num of options
...
not sure if it is the right way to do it
2021-09-14 13:10:12 +01:00
Daniel
cdbf7da8be
[Poll] Added templates, response counting
2021-09-14 13:10:12 +01:00
Daniel
27a0c43f7b
[Poll] Store poll response to DB
2021-09-14 13:10:12 +01:00
Daniel
3725818e4f
[Poll] Added New Route, RespondPoll, Poll Response, PollResponseForm
2021-09-14 13:10:12 +01:00
Daniel
dbb55362c8
[Poll] Fixed ShowPoll route, moved Poll Entity, created NewPollForm
...
Entity was temporarily moved to src/Entity in order to load from DB, since it is yet no possible to do that from Plugin
2021-09-14 13:10:12 +01:00
279cfcd058
[PLUGIN][Favourite] Move favourite table definition to inside the plugin, as it is now supported
2021-09-14 13:06:57 +01:00
1d42c7a835
[DB][NoteLocation] Add missing multiplicity
to column
2021-09-14 13:06:57 +01:00
4e4d4dfdc5
[DB] Fix typo in table definitions and fix name of GSActorCircle table
2021-09-14 13:06:57 +01:00
481027b09b
[AUTOGENERATED][DB][File][GroupJoinQueue] Update autogenerated code and add select fields as specified in the previous commit
2021-09-14 13:06:57 +01:00
1712782cc5
[DB] Change foreign key specification to new format
2021-09-14 13:06:57 +01:00
e2e53d9a2a
[AUTOGENERATED] Update auto generated code in entities
2021-09-14 13:06:56 +01:00
460712e15e
[GIT] Change my email to the new one in all files and bump copyright year
2021-09-14 13:06:56 +01:00
Hugo Sales
eefdf74658
Ensure group table name is quoted, as it's a reserved word in postgreSQL
2021-09-14 13:06:56 +01:00
Hugo Sales
e8feb2ae84
[DOCUMENTATION][REFACTOR] Add documentation to all flagged function and do some small cleanup
2021-09-14 13:06:55 +01:00
Hugo Sales
1949e0b987
[EVENT] Rename event names to camel case to make finding handlers easier
2021-09-14 13:06:55 +01:00
Hugo Sales
dd40255c4a
[CONFIG][DB] Remove config from the database, put it in yaml, so it can be baked into the container
2021-09-14 13:06:53 +01:00
Hugo Sales
a6c24393b5
[NOTE] Add isVisibleTo
2021-09-14 13:06:53 +01:00
Hugo Sales
0e332b718e
[SECURITY] Fix getRoles
2021-09-14 13:06:52 +01:00
Hugo Sales
420b4767b2
[UI][NOTE] Add reply to in UI
2021-09-14 13:06:51 +01:00
Hugo Sales
7af424b64a
[DB] Add rendered collumn to note table, so we can preserve microtags from other services
2021-09-14 13:06:50 +01:00
Hugo Sales
460cbbd4c9
[DB] Fix local_user table to use a numeric id, since the username is editable
2021-09-14 13:06:50 +01:00
Hugo Sales
3b86a46625
[DB] Rename notice to activity in notification table
2021-09-14 13:06:49 +01:00
Hugo Sales
51a398f27a
[UI] Subtract self follow from total user follows
2021-09-14 13:06:49 +01:00
Hugo Sales
6e11143b79
[DB][NOTE] Update scope
2021-09-14 13:06:49 +01:00
Hugo Sales
adc843c1d6
[DB] Add Activity table, to store all known activity
2021-09-14 13:06:48 +01:00
rainydaysavings
b6fb0255da
[DB] Temporarily add favourite entity in core, as plugins don't support them yet
2021-09-14 13:06:47 +01:00
Hugo Sales
0b50905ac8
[NOTE][UI] Add note replying and UI displaying
2021-09-14 13:06:45 +01:00
Hugo Sales
f2ab77c3a9
[DB][MEDIA] Small database structure changes
2021-09-14 13:05:58 +01:00
Hugo Sales
9649bec01e
[MEDIA][CACHE] Cache avatar queries and delete stale values; small refactoring
2021-09-14 13:05:57 +01:00
Hugo Sales
e3c5d7e5dc
[UI][MEDIA] Add actor avatar in feed timeline
2021-09-14 13:05:57 +01:00
Hugo Sales
de22f18abf
[SECURITY] Fix error in user registering where password wasn't hashed
2021-09-14 13:05:57 +01:00
Hugo Sales
be83d3532e
[DB][FOLLOW] Change Follow table
2021-09-14 13:05:56 +01:00
Hugo Sales
65a129aac6
[UI][CACHE][DB] Add follow counts to left panel, caching the results; change follow table
2021-09-14 13:05:56 +01:00
Hugo Sales
c8e8f1f057
[ENTITY] Add Entity base class to all entities
2021-09-14 13:05:56 +01:00
Hugo Sales
d548dc9284
[MODULE][Left][UI][TAGS] Add Left module which handles fetching tags and followers, fix self tags
2021-09-14 13:05:56 +01:00
Hugo Sales
31ccb2d07b
[DB][File] Remove timestamp, add actor_id
2021-09-14 13:05:55 +01:00
Hugo Sales
2e9c340684
[DB][AVATAR] Remove extraneous slash
2021-09-14 13:05:55 +01:00
Hugo Sales
eb138ebdae
[STREAM][NetworkPublic] Add skeleton of public timeline and posting
2021-09-14 13:05:54 +01:00
Hugo Sales
51a1a1180e
[AUTOGENERATED] Update autogenerated code
2021-09-14 13:05:54 +01:00
Hugo Sales
1111ee95f1
[CORE] Data Representation and Modelling refactor
2021-09-14 13:05:53 +01:00
Hugo Sales
9781d43f08
[LocalUser] Fix missing extend
2021-09-14 13:05:52 +01:00
Alexei Sorokin
eb12ac5ef1
[DATABASE] Enable fulltext search by default
...
Also rename fulltext indices to more fitting names
Imported from v2/f84dbb369f01a1d4a9bc362d01cdd100cdc79313
2021-09-14 13:05:51 +01:00
Hugo Sales
4128a5403d
[MEDIA][EXCEPTIONS] Fix errors and deprecations
2021-09-14 13:05:51 +01:00
Hugo Sales
699f25a397
[AUTOGENERATED] Update autogenerated code
2021-09-14 13:05:51 +01:00
Hugo Sales
bd8f4bd277
[AVATAR] Fixed avatar upload, added avatar inline download and updated template and base controller
2021-09-14 13:05:51 +01:00
Hugo Sales
4d99bfb9fd
[DB][FILE][AVATAR] Handle deleting files, change file and avatar tables
2021-09-14 13:05:50 +01:00
Hugo Sales
c7dbae8067
[AUTOGENERATED] Update autogenerated code
2021-09-14 13:05:49 +01:00
Hugo Sales
fe3a3978af
[UI][CONTROLLER] Work on tabbed notification settings panel
2021-09-14 13:05:46 +01:00
Hugo Sales
71db1870db
[SECURITY] Ensure ARGON2 constants are defined, or throw exception
2021-09-14 13:05:46 +01:00
Hugo Sales
6fc120571d
[DATABASE] Remove DATABASE::flush from Profile::setSelfTags
2021-09-14 13:05:45 +01:00
Hugo Sales
59eba851f7
[DATABASE][TOOLS] Update local_user to return the proper PhoneNumber type
2021-09-14 13:05:45 +01:00
Hugo Sales
db32a5fcfc
[DATABASE][TOOLS] Update local_user, SchemaDefDriver and bin/generate_entity_fields to use the phone_number type (which maps to a varchar 35 and does validation)
2021-09-14 13:05:44 +01:00
Hugo Sales
207eeb39ca
[SELFTAGS] Add Profile::{set,get}SelfTags
2021-09-14 13:05:43 +01:00
Alexei Sorokin
66c38d777a
[SECURITY] Update way passwords are checked and update
2021-09-14 13:05:43 +01:00
Hugo Sales
91af1be470
[AUTOGENERATED] Update all entity fields
2021-09-14 13:05:42 +01:00
Hugo Sales
5b578b9519
[DATABASE] Fix typos in user_notification_prefs
2021-09-14 13:05:42 +01:00
Hugo Sales
6e6c7ede1e
[DATABASE] Fix typo in profile table and add a constructor
2021-09-14 13:05:41 +01:00
Hugo Sales
a85fc2d0bd
[DATABASE] Update LocalUser table to not have a numerical id, add is_email_verified and fix getProfile accordingly
2021-09-14 13:05:41 +01:00
Hugo Sales
2796ac5228
[NOTIFICATION][DATABASE] Update user notification prefs table, implementation of Notification and define a base class for notification transport
2021-09-14 13:05:40 +01:00
Hugo Sales
0eba267a73
[LOGIN] Implement password checking and related systems
2021-09-14 13:05:40 +01:00
Hugo Sales
5a74354703
[DATABASE] Add role collumn to profile table
2021-09-14 13:05:39 +01:00
Hugo Sales
3313897671
[UI][SESSION] Add login and logout pages
2021-09-14 13:05:39 +01:00
Hugo Sales
f246667fe5
[AUTOGENERATED] Update autogenerated code
2021-09-14 13:05:38 +01:00
Hugo Sales
7c8ab40e3a
[DATABASE] Rename user table to local_user, since doctrine shits itself otherwise ._.
2021-09-14 13:05:38 +01:00
Hugo Sales
0ac1d563de
[DATABASE] Re-import the local_group table, as it'll be used as per the new group semantics
2021-09-14 13:05:37 +01:00
Hugo Sales
9c483e6e79
[DATABASE] Delete queue_item table, as queueing will be handled by messenger
2021-09-14 13:05:33 +01:00
Hugo Sales
97b583aee7
[AUTOGENERATED] Update autogenerated code
2021-09-14 13:05:29 +01:00
Hugo Sales
5eae3dc351
[CORE][DATABASE] Replace zero dates with CURRENT_TIMESTAMP and add defaults to all 'created' or 'modified'
...
This commit is a port from v2's 9a515b9234
([SCHEMA] Improve timestamp storage) to v3.
As explained by Alexei Sorokin:
Avoid the use of deprecated MariaDATABASE "zero dates" globally. If they're present
as attribute defaults somewhere, they will be replaced with NULL implicitly.
The existing "zero dates" in MariaDATABASE storage will be left intact and this
should not present any issues.
The "timestamp" type in table definitions now corresponds to DATETIME in
MariaDATABASE with "DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP", which
should be close enough to the original behaviour for compatibility purposes.
It is now the recommended type for "modified" attributes, because of the
update trigger on MariaDATABASE. But there is no such trigger implemented on
PostgreSQL as of this moment.
2021-09-14 13:05:29 +01:00
Hugo Sales
25aeac80a3
[CORE][DATABASE] Restructure the database
2021-09-14 13:05:29 +01:00
Hugo Sales
7c18f10bd2
[TOOLS] Fixed all licence blocks, to use the same, foldable, format
2021-09-14 13:05:26 +01:00
Hugo Sales
a794c28e75
[DATABASE] Change the way defaults are loaded, bulk insert, reload everything in debug mode, only on http requests (not command line)
2021-09-14 13:05:25 +01:00
Hugo Sales
f628665589
[FORMATTING] Cherry-pick of Diogo's 763ac735c0758624ebd5957993dc0676b865927a
2021-09-14 13:05:24 +01:00
Diogo Cordeiro
cb7518a750
[DOCUMENTATION][TOOL] Small bug fixes and docblock elaboration
2021-09-14 13:05:24 +01:00
Hugo Sales
fe73001c36
[DATABASE] Changed the type of the 'id' field of the ProfileList table from serial to int, as doctrine complains otherwise
2021-09-14 13:04:39 +01:00
Hugo Sales
1f35af7169
[DATABASE][AUTOCODE] Update autocode to use \DateTimeInterface instead of DateTime
2021-09-14 13:04:38 +01:00
Hugo Sales
eee803d2e9
[DATABASE] Add missing table names
2021-09-14 13:04:38 +01:00
Hugo Sales
6193062590
[DATABASE][AUTOCODE] Autogenerated fields, setters and getters for each entity
2021-09-14 13:04:38 +01:00
Hugo Sales
7e47846b80
[TOOLS] Change autocode tag to allow editor folding
2021-09-14 13:04:38 +01:00
Hugo Sales
f1e72255f1
[DATABASE] Removed calls to common_config
2021-09-14 13:04:37 +01:00
Hugo Sales
03a8c80c4f
[FORMATTING] Changed license block format to allow folding
2021-09-14 13:04:37 +01:00
Hugo Sales
8d41944f90
[DATABASE] Extracted schemaDef method from old files and refactored onto new files
2021-09-14 13:04:37 +01:00
Hugo Sales
24c8fefe58
[CORE][DATABASE] Import old classes folder into src/Entity
2021-09-14 13:04:37 +01:00
Hugo Sales
8fd54efe8d
[DATABASE] Remove testing entity
2021-09-14 13:04:37 +01:00
Hugo Sales
596009c924
[DOCUMENTATION] Document All The Things!
2021-09-14 13:04:33 +01:00
Hugo Sales
23b47b2aeb
[CS-FIXER] Updated cs-fixer rules and added a temporary exception to the src/Entity folder (awaiting pr merge)
2021-09-14 13:01:34 +01:00
Hugo Sales
e3c0669b37
[DOCTRINE][SCRIPT] Created a script to generate the class fields and accessors from the schema definition
2021-09-14 13:01:34 +01:00
Hugo Sales
2c9a732256
[CORE][DOCTRINE] Implement SchemaDefDriver, which transforms the old syntax from to doctrine's metadata
2021-09-14 13:01:34 +01:00
Hugo Sales
cc72373e3d
[DOCTRINE][SCHEMADEF] Create a new metadata driver to allow us to continue using static schemaDef functions
...
This has the benefit of requiring fewer code changes, as well as providing a better isolation
between GNU social and symfony, useful in case the framework needs to be changed
2021-09-14 13:01:34 +01:00
Hugo Sales
4b31c1f48f
[V3] Big Bang
...
Beginning anew, this time with a modern framework: symfony
2021-09-14 13:01:33 +01:00