Commit Graph

2159 Commits

Author SHA1 Message Date
Free Speech Forever
559ccc7e51 Merge branch 'performance_boosts' into 'develop'
Performance boosts

See merge request gab/social/gab-social!64
2021-02-18 07:09:28 +00:00
rubic0n
44fd00bdc0 Remove an unnecessary if 2021-02-18 00:54:51 -06:00
rubic0n
9b17b0a553 Reduce array allocations by using a constant 2021-02-18 00:54:29 -06:00
rubic0n
b1445d09b6 Remove 40KB of allocations (4,100 objects) from home feed
(When using dummy data)

* to_s(16) allocates a string per character
  Instead of converting the ord to hex and determining if the hex
  is over 2 characters long, just see if the ord is over 255.
* .match allocates a MatchData instance and sets all sorts of backrefs
  ($1, $2, etc). match? just returns a boolean.
2021-02-18 00:45:21 -06:00
rubic0n
006322cff7 Remove Hash allocation
merge! takes a Hash as an argument. Rather than allocating a Hash,
just use two different `=` calls, to achieve the same result.
2021-02-18 00:35:31 -06:00
rubic0n
a623252c59 Convert to boolean in C code
casecmp?(str) is 1.5x faster than casecmp(str).zero?
It's 1 less method call in Ruby, and the C code can convert
to boolean, rather than returning a number and determining
if it's zero.
2021-02-17 23:25:10 -06:00
rubic0n
0c7019f1e8 Add Benchmark IPS gem, to A/B test code 2021-02-17 23:24:34 -06:00
Fosco Marotto
6b7ece9123 Add a nil check during require_user 2021-02-17 00:20:06 -05:00
Fosco Marotto
8d3d7efe34 Merge branch 'develop' of https://code.gab.com/gab/social/gab-social into develop 2021-02-16 16:04:25 -05:00
Fosco Marotto
9666472105 Wrap user confirm method with writing role 2021-02-16 16:04:11 -05:00
Fosco Marotto
88d8bd2816 Merge remote-tracking branch 'origin/load_rails_6_0_defaults' into develop 2021-02-16 15:10:01 -05:00
Free Speech Forever
cb6e06c285 Merge branch 'feature/remove_keypair' into 'develop'
removed rsa keypair from account table, it was a federation relic

See merge request gab/social/gab-social!63
2021-02-16 18:54:37 +00:00
admin
5793d2aa33 remove local monkeypatch 2021-02-16 13:43:09 -05:00
admin
69f3cf08c9 fixed app/controllers/concerns/signature_verification.rb 2021-02-16 13:41:49 -05:00
admin
5d9750fa25 forgot to push these changes 2021-02-16 13:35:19 -05:00
admin
e942d3d97c removed rsa keypair from account table, it was a federation relic 2021-02-15 21:49:50 -05:00
mgabdev
5d1a40d936 Added CharacterCounter to ComposeDestinationHeader
• Added:
- CharacterCounter to ComposeDestinationHeader
- Styles for stroke colors for CharacterCounter

• Updated:
- CharacterCounter styles, heights to fit in header
2021-02-15 21:47:56 -05:00
mgabdev
0456ccfb2a Added missing fillSecondary class
• Added:
- missing fillSecondary class
2021-02-15 21:00:43 -05:00
mgabdev
0edaaa95d7 Fixed issue with Following/Followers scrolling to top on infinite scroll pagination
• Fixed:
- issue with Following/Followers scrolling to top on infinite scroll pagination
2021-02-15 20:48:19 -05:00
Fosco Marotto
d91df58eb9 Remove stray } from api.js 2021-02-15 19:59:02 -05:00
Free Speech Forever
422a599831 Merge branch 'test/devise-fork' into 'develop'
Use a modified Devise gem, changes to writing roles

See merge request gab/social/gab-social!62
2021-02-15 23:26:00 +00:00
Free Speech Forever
92c9092abd Avoid redundant OAuth queries when not signed in
If you aren't signed in, you don't have an auth token.
When you don't have an auth token, React was sending the headers

"Authorization: Bearer null"

This caused 5 Doorkeeper token lookups using
WHERE "oauth_access_tokens"."token" = 'null'
on the Explore page (the root of the app when not signed in).
2021-02-15 23:26:00 +00:00
Fosco Marotto
7bfe6c7709 More writing role changes in sessions controller 2021-02-14 23:21:53 -05:00
Fosco Marotto
5e7cec5345 Change logout deletion method. 2021-02-14 21:26:48 -05:00
Free Speech Forever
dd8c656dd5 Merge branch 'puma_5_2' into 'develop'
Upgrade to Puma 5.2.0 (from 5.1.1)

See merge request gab/social/gab-social!54
2021-02-15 01:12:32 +00:00
Free Speech Forever
2b563148a8 Merge branch 'development_updates' into 'develop'
Development updates

See merge request gab/social/gab-social!61
2021-02-15 01:11:39 +00:00
Fosco Marotto
0f85ba2f12 Change the oauth authorizations controller writing role method. 2021-02-14 15:52:38 -05:00
Fosco Marotto
0d5acfc3fb Update push subscription writing role 2021-02-14 14:10:25 -05:00
Fosco Marotto
09ba5c9be8 Fix settings application controller writing role 2021-02-14 14:05:03 -05:00
rubic0n
73c0e50936 Prevent constant ElasticAPM warnings in development by disabling it
No changes are needed in prod, since the `enabled` setting defaults
to "true", and prod obviously isn't setting this ENV.
2021-02-13 23:20:43 -06:00
rubic0n
f472a6154e Mark the replicas as replicas
Rails won't even attempt to write to a replica. Without this option,
a write attempt would actually run against Postgres, and it would
be up to Postgres to throw a readonly error.

Additionally, marking it as a replica teaches ActiveRecord that it
should not attempt to run migrations against this connection.

https://api.rubyonrails.org/classes/ActiveRecord/DatabaseConfigurations.html#method-i-configs_for

I'm actually pretty sure that the lack of `replica: true`
is why there's currently a db/slave1_schema.rb and db/slave2_schema.rb
2021-02-13 23:20:43 -06:00
rubic0n
903b6c7969 Simplify database.yml by merging in default options
Anything in the &default section can be merged in using <<: *default
In this case, the default already specifies that the adapter is
postgresql, the timeout is 5000, the encoding is unicode. It also
already specified the db pool, but the default actually checked 2
different ENVs and provided a fallback if it's not provided.
Lastly, I was able to move the prepared_statements section to the
defaults, because the .env.vagrant file doesn't specify
ENV['PREPARED_STATEMENTS'], development still just sets it to
'false'.
2021-02-13 23:20:43 -06:00
rubic0n
70c44fc68d Fix vagrant now that Rails 6 replicas are being used 2021-02-13 23:20:43 -06:00
rubic0n
6221581cf0 Create script to generate dummy data, for perf investigation 2021-02-13 23:20:43 -06:00
rubic0n
1179957a32 Start redis server on VM boot
Otherwise you have to start it yourself after vagrant halt / vagrant up
2021-02-13 23:20:43 -06:00
rubic0n
9331f06784 Add rack-mini-profiler, to diagnose perf issues 2021-02-13 23:20:43 -06:00
Developer
0341cd8572 Updated RegistrationsController captcha values
• Updated:
- RegistrationsController captcha values
2021-02-13 13:31:57 -05:00
Fosco Marotto
7a2594e105 Add writing role for some moderation classes, update verification method. 2021-02-11 18:34:04 -05:00
Developer
5a5150757e Added spam, other account flags to reports page table list items
• Added:
- spam, other account flags to reports page table list items

• Removed:
- Account moderation notes count in reports table list item
2021-02-11 14:38:41 -05:00
Developer
2548205487 Updated ReportService to not create new reports if account is already suspended
• Updated:
- ReportService to not create new reports if account is already suspended
2021-02-11 14:30:37 -05:00
Fosco Marotto
4bb2f1b745 Verification requests should use the writing role 2021-02-11 01:18:36 -05:00
Developer
538bcf21c9 Updated registration page username to disallow unallowed characters
• Updated:
- registration page username to disallow unallowed characters (special characters, spaces, etc.) and rewrite if is written in that field
2021-02-11 00:57:48 -05:00
Developer
8a2f34d815 Added check in RegistrationsController to ensure email and password don't match
• Added:
- check in RegistrationsController to ensure email and password don't match. If so, return back to registration form with alert
2021-02-11 00:33:28 -05:00
Developer
39a3d44bdd Updated all admin moderation links from app popover menus to open in new tab
• Updated:
- all admin moderation links from app popover menus to open in new tab
- GroupOptionsPopover group admin moderation link
- ProfileOptionsPopover account admin moderation link
- StatusOptionsPopover account and status admin moderation links
2021-02-11 00:23:20 -05:00
Developer
b636f36871 Added prop for openInNewTab in ListItem for Button links
• Added:
- prop for openInNewTab in ListItem for Button links
2021-02-11 00:21:44 -05:00
Developer
2fff6b3046 Fixed issue with empty featured group in FeaturedGroupsInjection
• Fixed:
- issue with empty featured group in FeaturedGroupsInjection

• Added:
- missing key in loop in FeaturedGroupsInjection render
2021-02-11 00:17:56 -05:00
Developer
f56d177b9b Added ability to copy g/ group link in GroupHeader to clipboard
• Added:
- ability to copy g/ group link in GroupHeader to clipboard on then show an alert on desktop
2021-02-11 00:16:43 -05:00
mgabdev
e3af1b4a26 Updated LinkBlock checks for if status text contains blocked domain
• Updated:
- LinkBlock checks for if status text contains blocked domain
- normalize_link to use domain instead of normalized_host

• Added:
- normalize_link_domain to check for if entire domains are blocked or not for spam
2021-02-11 00:01:45 -05:00
mgabdev
d73b4afa28 Updated random int function to use helper numbers util in ws stream.js
• Updated:
- random int function to use helper numbers util in ws stream.js
2021-02-10 23:21:35 -05:00
mgabdev
72162affcf Updated stream ws to close if backend api error
• Updated:
- stream ws to close if backend api error and not retry over and over again
2021-02-10 23:08:00 -05:00