Commit graph

2377 commits

Author SHA1 Message Date
Adam Fitzgibbon
42e0bad4ac
added validation for blocked users when inviting to groups by username (#14316) 2022-12-15 14:47:54 -06:00
Phillip Thelen
b97da5fe57
Add support for getting chat limit from database (#14392)
* Add support for getting chat limit from database

* fix lint error
2022-12-15 14:38:28 -06:00
Phillip Thelen
2c9ee04c6d
Optimise chat storage by not storing both equipped and costume (#14409)
* don’t store both equipped and costume

* fix lint
2022-12-15 14:30:15 -06:00
SabreCat
1587827b22 Merge branch 'develop' into release 2022-12-15 14:04:11 -06:00
Sabe Jones
eb2cb9e921
Refactor FAQ (#14372)
* refactor(faq): fetch from API on web
Also make question list more maintainable, allowing different questions across platforms

* fix(tests): don't return null when function is expected
Also removes the unnecessary default to web in controller

* fix(tests): add new fields to expectation, add placeholders

* refactor(faq): allow reordering

Co-authored-by: SabreCat <sabe@habitica.com>
2022-12-15 11:34:07 -06:00
Natalie L
573c932565
chore(content): add Polar Pro achievement (#14399)
* chore(content): add Polar Pro achievement

* chore(script): add migration script

* fix(typo): rogue backticks

* fix(capitalization): revert css blurp

* fix(migration): no babby wuff

Co-authored-by: Sabe Jones <sabrecat@gmail.com>
Co-authored-by: SabreCat <sabe@habitica.com>
2022-12-13 14:50:53 -06:00
Phillip Thelen
cde5fbef85 Fix case where a number was sometimes a string 2022-12-09 12:16:33 +01:00
SabreCat
df25e0574d fix(auth): enforce max pass length at update 2022-12-05 16:36:42 -06:00
Phillip Thelen
8b2af1ef56 remove log 2022-12-05 15:38:30 +01:00
Phillip Thelen
21652c2670 fix tests and some cases 2022-12-02 17:12:17 +01:00
Phillip Thelen
d1ee679810 handle upgrades and creations better 2022-12-02 11:51:33 +01:00
SabreCat
67988da33c fix(lint): line lengths and so on 2022-11-30 15:27:53 -06:00
Phillip Thelen
fae26a517d Improve handling 2022-11-30 15:06:50 +01:00
SabreCat
a8e9c9bc70 chore(event): set up Harvest Feast 2022 2022-11-21 18:54:57 -06:00
SabreCat
f1fa6a8456 Revert "Allow sub upgrades/downgrades on iOS (#14303)"
This reverts commit 9e98e56e9b.
2022-11-21 16:40:56 -06:00
Sabe Jones
82c5e40b92
Enforce maximum password length (#14290)
* fix(auth): enforce maximum password length

* fix(auth): line length and better error message

* fix(auth): correctly import/export constant

Co-authored-by: SabreCat <sabe@habitica.com>
2022-11-18 16:49:10 -06:00
Natalie L
116068effa
fix(apiDescription): remove incorrect information (#14367) 2022-11-18 16:21:03 -06:00
SabreCat
f2aaee15f3 Merge branch 'release' into develop 2022-11-18 15:29:06 -06:00
SabreCat
15353eba8a fix(subs): roll all the way back, didn't work :( 2022-11-18 15:12:14 -06:00
SabreCat
febffb3f07 Revert "Fix double subscriptions, second attempt (#14345)"
This reverts commit 1a5cba57b7.
2022-11-18 14:26:49 -06:00
SabreCat
fdfa2d6df4 Merge branch 'release' into develop 2022-11-15 19:29:37 -06:00
SabreCat
259131ee3f feat(transactions): UI updates
by @negue
2022-11-15 19:28:36 -06:00
Sabe Jones
1a5cba57b7
Fix double subscriptions, second attempt (#14345)
* fix(subscriptions): reject subs that come in too fast

* fix(lint): remove unused import

* fix(groups): individual subs may come rapidly

* fix(subscriptions): bad paren, handle rapid testing

* fix(test): reset dateUpdated between subs

* fix(test): one more block for dateUpdated

Co-authored-by: SabreCat <sabe@habitica.com>
2022-11-15 19:19:37 -06:00
Phillip Thelen
e3c86349b4 fix lint 2022-11-11 13:58:45 +01:00
Phillip Thelen
6604f38144 Handle subscription cancelation better 2022-11-11 13:54:17 +01:00
Phillip Thelen
7d2529f5e1 Add logic for different types of sub upgrades 2022-11-09 19:49:53 +01:00
SabreCat
6ee06f76e4 chore(i18n): update locale files
Also includes two fixes: empty Hourglass transaction logging and missing Recovery + Support guild category
2022-11-08 10:17:40 -06:00
Phillip Thelen
8d732c59c4 Add field to track when current subscription type started 2022-11-08 12:38:24 +01:00
Phillip Thelen
3a34aa4cc5 Improve recheck handling for test subs 2022-11-08 12:19:17 +01:00
Phillip Thelen
e7fc7feddd Better handling for cancellation when user had multiple subs 2022-11-04 13:30:50 +01:00
Phillip Thelen
7fd899b642 Fix logic for apple subscriptions 2022-11-03 17:48:36 +01:00
SabreCat
164dbdcf10 Merge branch 'develop' into apple_sub_fix 2022-11-02 15:00:24 -05:00
SabreCat
f6e5360bdd Merge branch 'release' into develop 2022-11-02 14:54:09 -05:00
Phillip Thelen
ab953440e3 fix issue where subs would be applied multiple times 2022-11-02 16:36:09 +01:00
SabreCat
9b1a726875 Revert "feat(subs): allow upgrade/downgrade on iOS"
This reverts commit 27440772f0.
2022-11-02 09:00:29 -05:00
Phillip Thelen
9e98e56e9b
Allow sub upgrades/downgrades on iOS (#14303)
* Allow sub upgrades/downgrades on iOS

* fix check

* fix(lint): line length

* fix(typo): customER

* fix tests

* Implement correct handling for when subs are up/downgraded

* fix lint errors

* fix test

Co-authored-by: SabreCat <sabe@habitica.com>
Co-authored-by: Sabe Jones <sabrecat@gmail.com>
2022-11-01 21:07:23 -05:00
SabreCat
27440772f0 feat(subs): allow upgrade/downgrade on iOS
by @phillipthelen
2022-11-01 20:53:04 -05:00
SabreCat
aea0be3245 fix(subs): establish lock to prevent race condition 2022-11-01 20:47:21 -05:00
Natalie L
3bc82a6692
chore(content): add Bone to Pick achievement (#14318)
* chore(content): add Bone to Pick achievement

* chore(content): update spritesmith-main.css

* chore(content): add more bone picking

* chore(content): more bone picking

* chore(content): bone picking

* chore(content): i gotta bone to pick here

* chore(content): final bone picking

* chore: add migration script

* chore: update habitica-images

Co-authored-by: SabreCat <sabe@habitica.com>
2022-10-31 14:19:56 -05:00
Phillip Thelen
08469c556b fix lint errors 2022-10-28 12:41:43 +02:00
Phillip Thelen
13a25ad89e Implement correct handling for when subs are up/downgraded 2022-10-28 11:23:48 +02:00
negue
f7a03d2eb5
improve transactions logs + split createSubscription (#14289)
* improve transactions logs + split createSubscription
2022-10-27 08:39:06 +02:00
SabreCat
e6a7d15644 fix(typo): customER 2022-10-25 16:59:59 -05:00
SabreCat
6a4b08203f fix(lint): line length 2022-10-25 16:52:16 -05:00
SabreCat
c9016c8d42 Merge branch 'develop' into phillip/sub_change 2022-10-25 16:47:51 -05:00
Sabe Jones
90250d1a25
Establish lock to avoid race scenario in subscriptions (#14267)
* fix(subscription): establish lock to avoid race scenario

* fix(lint): import syntax

* fix(lint): whitespace, dependency cycle

* fix(subs): skip locking on gifts and groups

* fix(subs): correctly reset _subSignature

* fix(sub): use findOneAndUpdate for unlock

* fix(test): save newly created user for some reason

Co-authored-by: SabreCat <sabe@habitica.com>
2022-10-25 16:44:33 -05:00
Phillip Thelen
31685c3e94 fix check 2022-10-21 16:59:18 +02:00
Phillip Thelen
c25b09c7ed Allow sub upgrades/downgrades on iOS 2022-10-21 16:57:12 +02:00
Anton de Regt
a4326498d1
Group category update issue (#14186)
* Overwrite arrays instead of merging

* Test removing a category

* Fix previous duplicated categories on group edit
2022-10-12 15:51:56 -05:00
Adam Tommasi
137f7d53dc
add qty param for gem/gem-purchasable item apidoc (#14219)
* add qty param for gem/gem-purchasable item

* fix(lint): remove extra whitespace

Co-authored-by: SabreCat <sabe@habitica.com>
2022-10-07 16:33:38 -05:00
SabreCat
8cd9536bdc Merge branch 'develop' into release 2022-09-30 15:25:27 -05:00
SabreCat
57d3fea523 Merge branch 'group-tracking-modal' into release 2022-09-30 14:47:08 -05:00
SabreCat
7db093d2bb Merge branch 'sabrecat/panel-subscription' into release 2022-09-30 14:46:10 -05:00
SabreCat
eea79ce1b6 Merge branch 'develop' into sabrecat/gems-multi-event 2022-09-21 16:03:57 -05:00
negue
e9ee2d3fdd
Transaction username mongodb mutation (#14231)
* migrate newest usernames in transactions

* fix lint

* change the parameters
2022-09-21 14:42:39 -05:00
SabreCat
004f1ee2dc Merge branch 'develop' into sabrecat/panel-subscription 2022-09-20 15:11:29 -05:00
CuriousMagpie
719fab8d4b chore: merge develop in 2022-09-16 16:12:34 -04:00
Phillip Thelen
24841346dc
Purge Facebook (#13696)
* Don't sign in user when trying to connect a social account that was already created

* Log social users into matching local auth accounts

If the social account has an email that already exists as a local user, instead of creating a new account log them into their account and add the social auth to the account

* If possible set local authentication email for social users

* Allow password reset emails to be sent to social login users

* lint fixes

* Fix issues and tests

* fix tests

* Fix lint error.

* purge Facebook.

Only keep it in some select places to allow for some compatablilty.

* Fix error

* fix error

* Let settings handle it when you don't have a password set but an email

* fix error

* Fix boolean logic

* fix json conversion

* .

* fix password reset for old social accounts

* Don't sign in user when trying to connect a social account that was already created

* Log social users into matching local auth accounts

If the social account has an email that already exists as a local user, instead of creating a new account log them into their account and add the social auth to the account

* If possible set local authentication email for social users

* Allow password reset emails to be sent to social login users

* lint fixes

* Fix issues and tests

* fix tests

* Fix lint error.

* purge Facebook.

Only keep it in some select places to allow for some compatablilty.

* Fix error

* fix error

* Let settings handle it when you don't have a password set but an email

* fix error

* Fix boolean logic

* fix json conversion

* fix password reset for old social accounts

* Revert "lint fixes"

This reverts commit c244b1651c2c23050d058fe15381518231d8a317.

# Conflicts:
#	website/client/src/components/auth/registerLoginReset.vue
#	website/client/src/components/static/contact.vue

* Revert "fix password reset for old social accounts"

This reverts commit 7e0069a80fd20bc54d13cec4f83e072ad20d6610.

* fix duplicate code

* chore(misc): remove irrelevant changes

* chore(privacy): update policy page with note about FB

Co-authored-by: SabreCat <sabe@habitica.com>
2022-09-15 18:22:52 -05:00
SabreCat
9a8d1854b9 fix(promo): handle Gems sale defined outside of single top event 2022-09-15 11:40:48 -05:00
SabreCat
fb780c9a2d fix(admin): reactivity with subscriptions 2022-09-13 15:52:03 -05:00
SabreCat
0081bad831 feat(admin): track hourglasses as transactions 2022-09-06 16:15:04 -05:00
SabreCat
f364b3c06f feat(admin): consecutive months editable field and automatic calcs 2022-08-31 16:09:20 -05:00
SabreCat
ae23ac12ff feat(admin): interactive subscription section fields 2022-08-30 16:56:43 -05:00
SabreCat
09d6dae75c feat(admin): provide reset cron button 2022-08-30 15:35:50 -05:00
CuriousMagpie
4464464c51 Merge branch 'develop' into group-tracking-modal 2022-08-30 15:44:09 -04:00
CuriousMagpie
9a1266677a Merge remote-tracking branch 'upstream/develop' into group-tracking-modal 2022-08-25 13:20:54 -04:00
SabreCat
7129639bbf fix(misc): correct one groups issue and two others 2022-08-25 09:24:08 -05:00
SabreCat
a5d9448af1 fix(cron): don't process group tasks during user cron 2022-08-24 14:18:07 -05:00
SabreCat
1aae9638ec fix(tasks): address regressions from group plan rollout 2022-08-24 11:05:19 -05:00
SabreCat
75c8486b1a fix(checklists): allow scoring own items 2022-08-23 14:38:05 -05:00
SabreCat
aebf13810f fix(tasks): remove spurious uncheck notification 2022-08-23 11:33:06 -05:00
SabreCat
971891dd6b fix(tasks): no really, address not-found error 2022-08-23 10:48:21 -05:00
SabreCat
395b8db932 fix(tasks): fix unassigned error case 2022-08-23 09:54:44 -05:00
SabreCat
da5c3f9602 fix(tasks): address not-found error on open uncheck 2022-08-23 09:36:23 -05:00
SabreCat
82abdaa0c4 WIP(tests): finish cleaning up v3 integrations 2022-08-22 21:47:55 -05:00
SabreCat
02c50b6126 WIP(tests): fix various assign requests and needs-work flow 2022-08-22 20:45:22 -05:00
SabreCat
149da578fd fix(teams): fix fix fix
Removed testing banner
Fixed a JS console error when assigning a user to a previously open task
Fixed a potential abuse where user might be able to score someone else's 
task via API call
Fixed an issue where finding tasks by alias could return tasks belonging 
to other users
Fixed an issue that was appending the user's party ID to their list of 
Guilds
Fixed an issue where group tasks were not receiving the default tag 
needed for filtering them on user's personal list
2022-08-22 16:16:23 -05:00
SabreCat
35d963a397 fix(teams): tweak FAQ and fix sync test 2022-08-22 14:43:21 -05:00
SabreCat
cccd8c3b1b Revert "fix(tests): catch non-array parameter"
This reverts commit 595c131398.
2022-08-22 14:17:06 -05:00
SabreCat
631d7111a5 fix(teams): send @username in notifications 2022-08-22 11:39:53 -05:00
SabreCat
89c07529ea feat(teams): add FAQ entry
Also a few client side fixes
2022-08-22 11:27:08 -05:00
SabreCat
595c131398 fix(tests): catch non-array parameter 2022-08-19 17:13:48 -05:00
SabreCat
95714599f0 feat(onboarding): welcome modal 2022-08-19 13:04:48 -05:00
CuriousMagpie
d70dd2e6dd update: add analytics event upon group creation/upgrade (temp code & console.logs commented out) 2022-08-15 17:13:51 -04:00
SabreCat
1701fc702b Merge branch 'develop' into sabrecat/teams-rebase 2022-08-09 11:55:46 -05:00
SabreCat
79071e3445 Merge branch 'develop' into release 2022-08-04 16:18:58 -05:00
Natalie L
f7b727dc95
chore(content): add Woodland Wizard Achievement and Forest Friends Quest Bundle (#14159)
* chore(submodule): add August 2022 Mystery Items

* chore(content): add Woodland Wizard achievement

* chore(content): add Forest Friends quest bundle

* fix(typo): whitespace

Co-authored-by: Sabe Jones <sabrecat@gmail.com>
2022-08-04 15:14:27 -05:00
SabreCat
9b9503b141 feat(tasks): make task copy/mirror pref per-group 2022-08-02 16:09:49 -05:00
SabreCat
a418752041 Merge branch 'develop' into sabrecat/teams-rebase 2022-08-01 15:40:08 -05:00
negue
c9b3c48379
fixed gifting transaction / adding comments (#14150) 2022-08-01 11:10:00 -05:00
SabreCat
e0e9381584 fix(groups): many, mostly style, fixes 2022-07-26 16:48:27 -05:00
SabreCat
30d3892fb4 Merge branch 'develop' into sabrecat/teams-rebase 2022-07-25 15:04:43 -05:00
Nishant Jain
8070486def
add max length validations for summary in challenge create and update… (#14053)
* add max length validations for summary in challenge create and update controllers

* Add validation to group APIs

* fix lint errors

* add validation to group plan

* fix imports

* add tests

* add max length validations for summary in challenge create and update controllers

* Add validation to group APIs

* fix lint errors

* add validation to group plan

* fix imports

* add tests

* lint checks
2022-07-22 15:24:24 -05:00
Sabe Jones
8e717de039
Server setting to disallow chat from new accounts (#13952)
* feat(chat): server setting to disallow chat from new accounts

* fix(tests): many adjustments to handle chat minimum age

* fix(tests): address issues outside of chat posting

* chore(analytics): add incident logging

* fix(config): allow instant chat for dev purposes

* fix(test): finely age one more user

* fix(test): member not leader

Co-authored-by: SabreCat <sabe@habitica.com>
2022-07-21 15:32:28 -05:00
negue
0b4059aab0
Transaction Logs - Backend Changes (#14113)
* Transaction Logs - Backend Changes

* filter out bank challenge if is not userSupport
2022-07-13 14:18:59 -05:00
SabreCat
9453b1269e Merge branch 'develop' into sabrecat/teams-rebase 2022-07-05 14:34:53 -05:00
Alys
5d4600f5c7 add banned words - TRIGGER / CONTENT WARNING: assault, slurs, swearwords, etc 2022-07-01 20:55:34 +10:00
SabreCat
6ebfa976fe Merge branch 'develop' into sabrecat/teams-rebase 2022-06-29 14:30:25 -05:00
SabreCat
ddd5f20609 fix(teams): don't complain about move route when not moving 2022-06-29 09:06:08 -05:00
SabreCat
a3f61306d3 feat(teams): user preference toggle for mirroring 2022-06-28 16:18:24 -05:00
SabreCat
d5926ef7f1 fix(auth): null string validation error on unique email conflict 2022-06-27 16:35:13 -05:00
SabreCat
712b85ce84 fix(teams): complete task sorting 2022-06-24 16:43:41 -05:00
SabreCat
9142588ba7 fix(tasks): better tasksOrder maintenance 2022-06-23 16:44:21 -05:00
SabreCat
647371accc Merge branch 'develop' into sabrecat/teams-rebase 2022-06-16 14:11:47 -05:00
SabreCat
239821a321 Merge branch 'sabrecat/teams-hotfixes' into release 2022-06-16 14:08:41 -05:00
SabreCat
08288db1ef chore(words): allow mild oaths and troublesome streamer as discussed 2022-06-16 13:30:34 -05:00
SabreCat
4a3a7db52a Merge develop 2022-06-16 13:25:56 -05:00
SabreCat
8b084e627e WIP(teams): show open tasks on user view 2022-06-16 13:25:09 -05:00
SabreCat
4ac1a3e717 Merge branch 'develop' into sabrecat/teams-rebase 2022-06-14 14:46:50 -05:00
SabreCat
a0177fa44d WIP(teams): display assigned tasks on user's personal board 2022-06-13 16:53:29 -05:00
Phillip Thelen
65d2eac4c3
Correctly handle google accounts with multiple subscriptions (#13982) 2022-06-10 14:07:36 -05:00
sau226
a0884b5d24
Remove QR code feature (#14038) 2022-06-10 14:06:25 -05:00
sau226
4d10c53216
Further transition from HTTP to HTTPS (#14039) 2022-06-10 14:02:58 -05:00
Jennifer Aldover
4da6467486
update apidoc exportUserAvatarHtml description (#14040) 2022-06-10 13:59:17 -05:00
SabreCat
0b1907fe07 fix(group-plans): shared completion, URL exploit 2022-06-08 16:46:22 -05:00
SabreCat
9fec111c4d Merge branch 'develop' into sabrecat/teams-rebase 2022-06-06 15:15:16 -05:00
SabreCat
a559c1add8 refactor(tasks): get rid of behind-the-scenes task cloning 2022-06-03 16:40:09 -05:00
SabreCat
5868849034 Merge branch 'develop' into sabrecat/teams-rebase 2022-06-03 16:04:35 -05:00
SabreCat
6d2db6693c Merge branch 'develop' into release 2022-06-03 15:13:56 -05:00
Sabe Jones
341517083e
Record local email for social users where possible (#14029)
* fix(auth): record local email for social users where possible

* fix(auth): Apple emails are junk, prefer Google

* fix(auth): correct placement of logic to save local email

* fix(auth): run full function in both workflows to avoid conflicts

Co-authored-by: SabreCat <sabe@habitica.com>
2022-06-03 15:06:40 -05:00
Natalie L
d726b88a86
Content: Beta Groups Testing Achievement (#14014)
* content: beta Groups testing achievement

* resolving merge conflict
2022-06-03 15:04:27 -05:00
SabreCat
ce67f06bab fix(chat): test expectation, short circuit if no group 2022-06-02 16:43:14 -05:00
SabreCat
219bdc088b feat(chat): don't check for slurs in private chats 2022-06-02 16:16:40 -05:00
SabreCat
1ef7924ba5 Merge branch 'develop' into sabrecat/teams-rebase 2022-05-24 09:39:01 -05:00
Natalie L
8040d14c28
code for reptacular rumble achievement (#13981) 2022-05-23 15:39:51 -05:00
Sabe Jones
31385b3e7b
fix(auth): take best guess when multiple accts with same email (#13980)
Co-authored-by: SabreCat <sabe@habitica.com>
2022-05-19 15:32:03 -05:00
SabreCat
9c24d43a13 Merge branch 'develop' into sabrecat/teams-rebase 2022-05-17 09:34:51 -05:00
SabreCat
bf9a7ea7d9 fix(teams): take user to relevant group from task assignment click 2022-05-13 14:26:14 -05:00
SabreCat
1a74d2b3b0 refactor(achievements): crush down to much fewer notification types
most work by @CuriousMagpie
2022-05-12 15:25:40 -05:00
John Li
d132b057eb
Fix XML Data Export Error by Modifying XML Format (#13942)
* Added XML code to parse json + convert formatting before exporting as XML + XML Marshall tests

* Add linting fixes

linting errors still present in xmlMarshaller.test.js but, certain keys starting with digits (for example '800ed0') must be enclosed in quotes , so to maintain consistency within the test file I kept all keys enclosed by single quotes.

* fix(lint): unquote, EOF

Co-authored-by: SabreCat <sabe@habitica.com>
2022-05-12 15:24:17 -05:00
Sabe Jones
a0de2dab49
fix(tasks): don't send delta around as an array (#13967)
Co-authored-by: SabreCat <sabe@habitica.com>
2022-05-12 14:56:05 -05:00
SabreCat
565d33f6a7 Merge branch 'develop' into sabrecat/teams-rebase 2022-05-03 15:53:11 -05:00
Phillip Thelen
38b39b600c
Adminpanel and revamped permissions (#13843)
* create Admin Panel page with initial content from Hall's admin section

* reorganise Admin Panel form and add more accordians

* add lastCron to fields returned by api.getHeroes

* improve timestamps and authentication section

* add party and quest info to Admin Panel, add party to heroAdminFields

* move Admin Panel menu item to top of menu, make invisible to non-admins

* remove code used for displaying all Heroes

* add avatar appearance and drops section in Admin Panel

* allow logged-in user to be the default hero loaded

* add time zones to timestamp/authentication section

* rename Items to Update Items

This will allow a new Items section to be added.

* add read-only Items display with button to copy data to Update Items section

* remove never-used allItemsPaths code that had been copied from Hall

* update tests for the attributes added to heroAdminFields

* supply names for items and also set information for gear/equipment

* remove code that loads subsections of content

We use enough of the content that it's easier to load it all and
access it through the content object, especially when we're looping
through different item types.

* add gear names and set details to Avatar Costume/Battle Gear section

* make the wiki URLs clickable and make minor item format improvements

* add gear sets for Check-In Incentives and animal ears and tails

* add gear set for Gold-Purchasable Quest Lines

Also merges the existing Mystery of the Masterclassers quest set into it.

* fix error with Kickstarter gear set and include wiki link

* improve description of check-in incentive gear set

* fix description of Items section

* fix lint warnings

* update another test for the attributes added to heroAdminFields

* allow "@" to be included when specifying Username to load

* create GetHeroParty API v3 route to fetch a given user's party data

Only some data from the party will be loaded (e.g., not private
data such as name, description).

Includes tests for the route.

See the next commit for front-end changes that use this.

* display data from a given user's party in admin panel

Only some data from the party will be loaded (e.g., not private
data such as name, description).

Also adds support for finding and displaying errors from the
user's data.

* use new error handling method for other sections

- Time zone differences
- Cron bugs
- Privilege removal (mute/block) - not a bug but needs to be highlighted

* redirect non-admin users away from admin-only page (WIP)

This needs more work. Currently, admin users are also redirected
if they access the page by direct URL or after reload.

* clarify source of items from Check-In Incentives and Lunar Battle quests

* replace non-standard form fields with HTML forms

* add user's language, remove unused export blocks

* convert functions to filters: formatDate, formatTimeZone

* improve display of minutes portion of time zone in Admin Panel

* move basic details about user to a new component

* move Timestamp/Cron/Auth/etc details to a new component - WIP, has errors

The automatic expand and error warnings don't reset themselves when
you fetch data for a new user.

* replace non-standard form fields with HTML forms

Most of this was done in 26fdcbbee51937d39a149a20bf7ccd1cf674ca18

* move Timestamp/Cron/Auth/etc details to a new component (fixed)

* move Avatar and Drops section to a new component

* move Party and Quest section to a new component

* move Contributor Details to new component, add checkbox for admin, add preview

This adds a markdown-enabled preview of the Contributions textarea.

It also removes the code that automatically set contributor.admin
to true when the Tier was above 7.
That feature wasn't secure because the Tier can be accidentally
changed if you scroll while the cursor is over the Tier form field
(we accidentally demoted a Socialite once by doing that and if
we'd scrolled in the other direction we would have given her
admin privileges).

Instead there's now a checkbox for giving moderator-level privileges.
We'll want that anyway when we move to a system of selected
privileges for each admin instead of all admin privileges being
given to all mods/staff.

There's also a commented-out checkbox for giving Bailey CMS
privileges, for when we're ready to use that. The User model doesn't
yet have support for it.

* move Privileges and Gems section to a new component

* rename formatItems to getItemDescription; make other minor fixes

* remove an outdated test description

This "pended" explanation probably wasn't needed after "x" was
removed from "describe" in 2ab76db27c

* add newsPoster Bailey CMS permission to User model and Admin Panel

* move formatDate from mixins to filters

* make lint fixes

* remove development comments from hall.js

I'll be handling the TODO comment and I've left in my "XXX" marker
to remind me

* fix bug in Hall's castItemVal: mounts are null not false

* move Items section to a new component and delete Update Items section

The Update Items section is no longer needed because the new Items
component has in-place editing.

* remove unused imports

* add "secret" field to "Privileges, Gem Balance" section.

Also move the markdownPreview style from contributorDetails.vue to
index.vue since it's used in two components now.

* show non-Standard never-owned Pets and Mounts in Items section

* redirect non-admin users away from admin-only page

This completes the work started in commit a4f9c754ad3886466925de4d8ed9a5ac55d2f999

It now allows admins to access the page when coming from another
page on the site or from a direct link, including if the admin user
isn't logged in yet.

* display memberCount for party

* add secret.text field to Contributor Details

This is in addition to showing it in the Privileges section because
the secret text could be about either troublesome behaviour or
contributions.

* allow user to be loaded into Admin Panel via a URL

This includes:

- router config has a child route for the admin panel with a
Username/ID as a parameter
- loadHero code moved from top-level index page into a new
"user support" index page
- links in the Hall changed to point to admin panel route
- admin panel link added to admin section of user profile modal

* keep list of known titles on their own lines

* sort heroFields alphabetically

No actual changes.

* return all flags for use in Admin Panel and fix Hall tests for flags

Future Admin Panel changes will display more flags.

NB 'flags' wasn't in the tests before, even though two optional
flags were being fetched.
The tests weren't failing because the test users hadn't been given
data for those optional flags.

The primary reason for this change now is to fix the tests.

* show part of the API Token in the Admin Panel

* send full hero object into cronAndAuth.vue

This is a prelude to allowing this component to change the hero.

* split heroAdminFields string into two: one for fetching data and one for showing it

This is because apiToken must be fetched but not shown,
while apiTokenObscured is calculated (not fetched) and shown.

* let admin change a user's API Token

* restore sanity

* remove code to show obscured version of API Token

It will return with tighter permissions for viewing it.

* add Custom Day Start time (CDS) to Timestamps, Time Zone... section

* commit lint's automatic fixes - one for admin-panel changes in hall.js

The other fixes aren't related to this PR but I figured they may
as well go live.

* apply fixes from paglias's comments, excluding style/CSS changesd

The comments that this PR fixes start at
https://github.com/HabitRPG/habitica/pull/12035#pullrequestreview-500422316

Style fixes will be in a future commit.

* fix styles/CSS

* allow profile modal to close when using admin panel link

Also removes an empty components block.

* prevent Admin Panel being used without new userSupport privilege

Also adds initial support for other contributor.priv privileges
and changes Debug Menu to add userSupport privilege

* don't do this: this.hero = { ...hero };

* enhance quest error messages

* redirect to admin-panel home page when using "Save and Clear Data"

The user's ID / name is still in the form for easy refetching.

* create ensurePriv function, use in api.getHeroParty

* fix lint problems and integration tests

* add page title to top-level Admin Panel

Also add more details to a router comment (consistent with a similar
comment) in case it helps anyone.

* fix tests

* display Moderation Notes above Contributions

* lint fix

* remove placeholder code for new privileges

I had planned to have each of these implemented in stages, but
paglias wanted it all done at once. I'm afraid that's too big a
project for me to take on in a single PR so I'm cancelling
the plans for adjusting the privileges.

* Improve permission handling

* Don't report timezone error on first day

* fix lint error

* .

* Fix lint error

* fix failing tests

* Fix more tests

* .

* ..

* ...

* fix(admin): always include permissions when querying user
also remove unnecessary failing test case

* permission improvements

* show transactions in admin panel

* fix lint errors

* fix permission check

* fix(panel): missing mixin, handle empty perms object

Co-authored-by: Alys <alice.harris@oldgods.net>
Co-authored-by: SabreCat <sabe@habitica.com>
2022-05-03 14:40:56 -05:00
Aleksandr Saitgalin
1823f658c6
update user and group in a transaction when creating a group. fixes #12124 (#13730)
* fix #12124

add a transaction for updating user and group
so the user doesn't lose gems when saving the group fails

* use mongoose transaction helper

use the helper instead of manually commiting/aborting
to deal with transient transaction errors

* increase timeout and add console.log outputs

add some logging to a failing test

* Revert "increase timeout and add console.log outputs"

This reverts commit 0c36aaa55fc5607211c0b96c11e865f21788b09e.

* add a test for gems when guild creation fails

test the transaction in createGroup()
make sure user keeps the gems if group.save() rejects

* fix(test): try suggested delay from PR discussion

Co-authored-by: SabreCat <sabe@habitica.com>
2022-04-29 16:47:17 -05:00
SabreCat
90375e3bc4 Merge branch 'develop' into sabrecat/teams-rebase 2022-04-14 15:36:26 -05:00
Phillip Thelen
664f960a8b
Pull in missing changes from FB removal PR (#13931)
* fix(auth): hide post hoc Facebook reg

* Pull in missing changes

* fix(lint): whitespace

* fix(strings): missing error message

* fix(tests): update to match functionality

Co-authored-by: SabreCat <sabe@habitica.com>
2022-04-14 12:58:37 -05:00
SabreCat
8f7e5d544e Merge branch 'develop' into sabrecat/teams-rebase 2022-04-07 14:55:16 -05:00
SabreCat
e17b86a1f6 fix(bug-report): relevant change from #13922 2022-04-07 14:48:26 -05:00
negue
8cb8411cc6
Show "Next Hourglass" Month (#13860)
* Show "Next Hourglass" Month

* fix lint

* lint,

* lint

* lint..

* linting bad

* ui fixes

* remove additional margin

* show next hourglass date to debug further

* WIP tests - maybe broken logic

* flex:1 doesn't work - so stats columns now at 33% width

* fix(cron): lint and short circuit

* refactor logic

* update test dates using timezone

* also check for the timezone date

* fix timezone for tests

* fixing the test dates?

* fixing the test dates?

* change nextHourglass logic + update gem cap label / value

* fix lint

* dont add gemsBought to it

* remove tooltip

Co-authored-by: SabreCat <sabe@habitica.com>
2022-04-06 16:30:13 -05:00
SabreCat
40113b0458 Merge branch 'develop' into sabrecat/teams-rebase 2022-04-05 13:56:25 -05:00
Phillip Thelen
55cf2f9795
Improve flows for social auth users (#13862)
* Multiple fixes for social authentication flows

* frontend changes

* add missing computed property

* Improvements to social flows

* fix existing email error

* minor fixes

* fix space

* fix test

* fix lint

Co-authored-by: SabreCat <sabe@habitica.com>
2022-03-31 16:43:16 -05:00
Phillip Thelen
9ff0766910
Fix cron not running if previous run failed (#13892)
* catch issue where cron wouldn’t run bc previous run failed

* add some more tests for cron middleware

* fix lint
2022-03-31 16:32:59 -05:00
SabreCat
f1b0aa2e7c Merge branch 'develop' into sabrecat/teams-rebase 2022-03-28 16:34:31 -05:00
SabreCat
966cc64396 Merge branch 'release' into develop 2022-03-28 16:33:35 -05:00
SabreCat
0a2eceaa73 fix(achievement): correct string for Birds and add to user schema 2022-03-28 16:26:37 -05:00
SabreCat
354f3578a2 Merge branch 'develop' into sabrecat/teams-rebase 2022-03-23 20:23:29 -05:00
SabreCat
5890b04e30 Merge branch 'release' into develop 2022-03-23 20:21:13 -05:00
Sabe Jones
f7f928d1bd
On-the-fly fix for tasks missing from tasksOrder (#13900)
* fix(tasks): revised fix logic, accounting for groups/challenges

* fix(tasks): don't grab individual user tasks in shared list

Co-authored-by: SabreCat <sabe@habitica.com>
2022-03-23 20:17:49 -05:00
SabreCat
33da6b7959 revert of hotfix for further review 2022-03-21 16:28:41 -05:00
SabreCat
9a454daef1 partial revert of hotfix for further review 2022-03-21 16:28:20 -05:00
SabreCat
2828ae660c fix(tasks): correct list repair query 2022-03-18 17:40:09 -05:00
SabreCat
fa27aa8fe7 fix(tasks): self-healing for missing tasksOrder entries 2022-03-18 17:15:20 -05:00
SabreCat
e9ca17bbd8 Merge branch 'develop' into sabrecat/teams-rebase 2022-03-14 14:33:36 -05:00
SabreCat
a0cb9da64b Merge branch 'release' into develop 2022-03-14 14:31:36 -05:00
SabreCat
3e082fe127 chore(event): Pi Day 2022 2022-03-14 14:29:57 -05:00
SabreCat
5a638ab4b8 Merge branch 'develop' into sabrecat/teams-rebase 2022-03-09 16:37:31 -06:00
SabreCat
5320de93a8 Merge branch 'release' into develop 2022-03-09 16:18:08 -06:00
CuriousMagpie
aa1b9a5e94 added achievement Birds of a Feather 2022-03-08 12:43:38 -05:00
Alys
8cfb2a05ef add banned word - TRIGGER / CONTENT WARNING: assault, slurs, swearwords, etc 2022-03-06 16:38:41 +10:00
SabreCat
61be42bf05 WIP(teams): data migration draft 2022-03-04 18:17:43 -06:00
SabreCat
1473408752 Merge branch 'develop' into sabrecat/teams-rebase 2022-02-22 12:18:59 -06:00
SabreCat
08352c5f49 fix(subs): correct cancellation check logic and test 2022-02-22 11:26:15 -06:00
Phillip Thelen
c6d07983b2 Fix issue with validating android sub cancellation 2022-02-22 10:12:10 -06:00
SabreCat
7e73c336dd WIP(teams): stylish and functional multi assign checkboxes 2022-02-17 15:51:28 -06:00
SabreCat
82d3545c08 WIP(teams): various fixes 2022-02-17 15:51:28 -06:00
SabreCat
13e645fa4b fix(teams): correct some unassignment bugs 2022-02-17 15:51:27 -06:00
SabreCat
9e527f4f35 WIP(teams): can do To Do's 2022-02-17 15:51:09 -06:00
SabreCat
eaa5f821a4 WIP(multi-assign): functioning multi 2022-02-17 15:50:44 -06:00
SabreCat
a495db8480 WIP(assignment): change to object style
to do--let assignment API accept an array
2022-02-17 15:50:42 -06:00
SabreCat
fa99458ca4 WIP(multiassign): resume shared completion implementation 2022-02-17 15:50:23 -06:00
Sabe Jones
1f81e1971b fix(cron): remove now redundant logic 2022-02-17 15:49:56 -06:00
Sabe Jones
45fc2b62e3 fix(cron): process team board tasks assigned to the user 2022-02-17 15:49:56 -06:00
Sabe Jones
63e0875f32 fix(teams): allow ticking team checklists 2022-02-17 15:49:34 -06:00
Sabe Jones
1752c08fd9 fix(teams): allow managers to reorder tasks 2022-02-17 15:49:19 -06:00
Sabe Jones
f233c511cc fix(teams): layout issues, error, change timezone format 2022-02-17 15:49:16 -06:00
Sabe Jones
0806391ab8 feat(teams): Day Start and adjust uncheck wording 2022-02-17 15:48:55 -06:00
Sabe Jones
59dc97b75f WIP(teams): fixes, beta banner 2022-02-17 15:47:37 -06:00
Sabe Jones
85a9ea726c WIP(teams): draft of server literal-actual-cron script 2022-02-17 15:47:23 -06:00
Sabe Jones
d53813adc7 WIP(teams): add some analytics, remove extraneous logic 2022-02-17 15:47:02 -06:00
Sabe Jones
221dd7a81e fix(tasks): more lock icon revision, no error on manager uncheck 2022-02-17 15:46:45 -06:00
Sabe Jones
801b902bb8 fix(tasks): manager lock icon, coerce task value to Number 2022-02-17 15:46:43 -06:00
Sabe Jones
072b09e030 feat(teams): quick add
Also fixes issue with lock icons
Also hides task copies from personal task board
2022-02-17 15:46:42 -06:00
Sabe Jones
a5680836bd feat(teams): new disapproval workflow, managers can uncheck tasks 2022-02-17 15:46:23 -06:00
Sabe Jones
ae0528e5cd WIP(teams): fix initially unassigned task, add completedBy data 2022-02-17 15:44:57 -06:00
Sabe Jones
f4feb09fbc fix(cron): actually process cron for assigned tasks 2022-02-17 15:44:54 -06:00
Sabe Jones
6cddb3bf82 WIP(teams): more partial fixing 2022-02-17 15:44:36 -06:00
Sabe Jones
248e1c6fe9 WIP(teams): reimplement open tasking 2022-02-17 15:43:28 -06:00
Sabe Jones
5bf4e18ce8 WIP(teams): don't damage leader for incomplete team Dailies 2022-02-17 15:41:06 -06:00
Sabe Jones
cab4a2a8fa WIP(teams): begin simplification 2022-02-17 15:41:05 -06:00
SabreCat
77751223d3 fix(valentines): adjust empty event daterange 2022-02-14 15:20:37 -06:00
Alys
d464b98d9b add words to list of banned swear words - TRIGGER / CONTENT WARNING: assault, slurs, swearwords, etc 2022-02-06 15:50:25 +10:00
SabreCat
ca4df96902 Merge branch 'release' into develop 2022-02-01 15:29:35 -06:00
SabreCat
83c2e1774b Merge remote-tracking branch 'CuriousMagpie/zodiac-zookeeper' into release 2022-02-01 14:30:02 -06:00
SabreCat
b383574438 fix(event): it's 2022 now, lol 2022-02-01 14:27:08 -06:00
Phillip Thelen
6e43d4dc79
Add Transaction log for gem and hourglass changes (#13589)
* Log all gem transactions to database

* Also store hourglass transactions

* Fix tests

* Display transaction history in hall of heroes for admins

* add tests to new API call

* hide transaction settings tab for non admins

* fix(lint): remove console

* fix(lint): various automatic corrections

* fix(transactions): use enum expected pluralizations

* fix api unit tests

* fix lint

* fix failing test

* Fix minor inconsistencies

* Log all gem transactions to database

* Also store hourglass transactions

* Fix tests

* Display transaction history in hall of heroes for admins

* add tests to new API call

* hide transaction settings tab for non admins

* fix(lint): remove console

* fix(lint): various automatic corrections

* fix(transactions): use enum expected pluralizations

* fix api unit tests

* fix lint

* Fix minor inconsistencies

Co-authored-by: Sabe Jones <sabrecat@gmail.com>
2022-01-31 15:36:15 -06:00
SabreCat
de477ebb4a Revert "Revert "Revert "Prerequisites to removing Facebook authentication (#13683)"""
This reverts commit e3ffd7acbc.
2022-01-31 14:52:22 -06:00
SabreCat
5937635b3f feat(event): award to new users today
Also correct filename of 2022 migration
2022-01-31 10:57:49 -06:00
CuriousMagpie
f2f3a1f0eb added Zodiac Zookeeper achievement 2022-01-28 17:14:50 -05:00
SabreCat
e3ffd7acbc Revert "Revert "Prerequisites to removing Facebook authentication (#13683)""
This reverts commit b3c466ad5a.
2022-01-27 14:50:04 -06:00
SabreCat
b3c466ad5a Revert "Prerequisites to removing Facebook authentication (#13683)"
This reverts commit 1177ad8b8c.
2022-01-25 09:30:37 -06:00
Phillip Thelen
1177ad8b8c
Prerequisites to removing Facebook authentication (#13683)
* Don't sign in user when trying to connect a social account that was already created

* Log social users into matching local auth accounts

If the social account has an email that already exists as a local user, instead of creating a new account log them into their account and add the social auth to the account

* If possible set local authentication email for social users

* Allow password reset emails to be sent to social login users

* lint fixes

* Fix issues and tests

* fix tests

* Fix lint error.
2022-01-21 15:15:58 -06:00
Alys
6c841fbe17 add adult terms to list of swear words - TRIGGER / CONTENT WARNING: assault, slurs, swearwords, etc 2022-01-05 15:31:14 +10:00
SabreCat
5973bca327 feat(event): New Year's Eve 2021 2021-12-30 13:34:04 -06:00
SabreCat
f2cfc2744d fix(Slack): improve subscription notif logic 2021-12-22 14:58:15 -06:00
SabreCat
391a9bd91b feat(promo): G1G1 2021
Also refactors a number of places on web client to start using event 
list from world state instead of singular currentEvent
2021-12-15 16:20:43 -06:00
negue
a1cddcaf17
Feature: new "report a bug" modal (#13530)
* WIP: report a bug api/ui

* fix lint

* add USER_USERNAME

* extend sendTxn tests / checks + fix bug report email

* fix lint

* add more checks to sendTxn - fix bug-report variables

* fix lint / ci

* fix test: reset email config url

* fix test stub

* fix tests

* refactor the variables checks

* lint.

* move bug-report page as a modal

* send user_email to the email

* show true/false instead 1/0

* fix issues

* fix footer report bug email if not logged in

* fix styles/margins

* prefill user's email

* show facebook email if local email not existing

* bugReportSuccessModal.vue

* add BROWSER_UA to mail properties

* extract bugReportLogic to its own lib file for unit test

* test api validators

* fix lint
2021-12-14 19:16:50 -06:00
Natalie L
9e0e805d35
Fix: Updated challenge.js to allow shortName to be editable by party leader (#13654)
* updated challenge.js to allow shortName to be editable

* fix api-v3 integration test error
2021-12-14 15:54:57 -06:00
SabreCat
466aa38999 fix(lint): comma 2021-11-24 11:51:00 -06:00
SabreCat
d20271e91f feat(content): Harvest Feast 2021 2021-11-24 11:23:09 -06:00
SabreCat
cd5044e780 Revert "Revert "Set cache to private for the language resources""
This reverts commit c6d1954153.
2021-11-24 07:41:55 -06:00
SabreCat
c6d1954153 Revert "Set cache to private for the language resources"
This reverts commit 90a14ee871.
2021-11-18 15:18:53 -06:00
SabreCat
31469a2d70 Revert "Make the linter happy"
This reverts commit df28670d16.
2021-11-18 15:18:30 -06:00
agares
df28670d16
Make the linter happy 2021-11-18 19:28:44 +01:00
agares
90a14ee871
Set cache to private for the language resources 2021-11-18 19:14:00 +01:00
Alys
4951e82c8d add adult term to list of swear words - TRIGGER / CONTENT WARNING: assault, slurs, swearwords, etc 2021-11-10 15:05:30 +10:00
Alys
e4c4e8c5e6 add an adult term to list of banned swear words - TRIGGER / CONTENT WARNING: assault, slurs, swearwords, etc 2021-11-07 19:06:04 +10:00
Natalie L
5d87c2af13
fix: I18n string update (#13588)
* i18n string updates (issue #9210)

* change offHand to offHandCapitalized

* added removeTasks to challenge.json

* added hairBangs back to character.json

* added hairBangs back to character.json

* more hairBangs nonsense

* added hairBangs to hair-settings.vue, removed same from character.json

* changed levelUp to levelup in levelUp.vue and achievements.json

* fix duplicate string values

* fixed different strings with same content in different files

* updated test/api/v3 and test/api/v4 with messageTaskNotFound

* Delete POST-tasks_taskId_checklist_itemId_score.test.js

File got copied to a new directory, doesn't need to be here.

* fix: userID token in patrons.vue and heroes.vue

* removed: unused clock of code

* Restored eggsItemType to inventory.json

Co-authored-by: Sabe Jones <sabrecat@gmail.com>
2021-11-04 16:33:08 -05:00
Sabe Jones
b39b42b3c2 Merge branch 'develop' into release 2021-10-28 13:55:11 -05:00
Sabe Jones
5e71abe64f feat(content): Habitoween 2021
Royal Purple Jack-O-Lantern Mount, Candy, Spooky Gem Sale, Subscriber 
Mystery Items for November
2021-10-28 13:52:46 -05:00
Matheus Lima Cunha
72a0313fb2
Prevent Cron from incorrectly updating loggedIn (#13559)
* Prevent Cron from incorrectly updating loggedIn

* fix(lint): missing comma

Co-authored-by: Sabe Jones <sabrecat@gmail.com>
2021-10-21 17:39:16 -05:00
Benja Appel
c6e7b18e8b
Api task streak default value (#13557)
* Default value for task streak (fix #13372)

* Truncate task streak value decimals on update
2021-10-21 15:47:17 -05:00
Sabe Jones
496153b6e9 Merge branch 'release' into develop 2021-10-21 10:50:05 -05:00
Sabe Jones
d2ddb743b6 feat(content): Shade pet/mount collection achievements 2021-10-21 10:49:22 -05:00
Sabe Jones
823a35b859 fix(cron): remove now-erroneous function call 2021-10-14 15:26:28 -05:00
Sabe Jones
0480681006 chore(ABtest): remove vestigial drop cap A/B test code 2021-10-14 15:04:14 -05:00
KoRnoliX
d2a0d4194a
Fix casting items on parties that exceed it limit by showing Load More Button (#13509)
* Fixed party size and notification when inviting

Fixed party limit to 30 members (previously 31) and pop-up when trying
to invite someone, when party has already reached it's members limit, to properly
show members number.

* Fixed View Party button in header

Fixed View Party button in header to properly show Load More button
when party size exceeds party limit.

* Fixed View Party button to properly open party

Fixed View Party button to properly open party members list on refreshing the main page, this bug was
caused by previous commit.

* Fixed SelectMembersModal to properly show Load More button

Fixed SelectMembersModal (the modal that apperas when casting
cards/specials on party member) to properly show Load More button when party size exceeds party limit

* fix(test): limit now technically 29 plus leader

* fix(test): adjust for tweakage

Co-authored-by: Sabe Jones <sabrecat@gmail.com>
2021-10-07 15:41:22 -05:00
Seth Falco
72fc134a88
chore: replace http wiki links with https (#13528) 2021-10-01 17:58:09 -05:00
Sabe Jones
60f251a8c7 fix(apidoc): change path in middleware and lintignore 2021-09-24 11:18:06 -05:00
Benja Appel
c5b0833bf2
fix cloned challenge task order (#13328) (#13506)
* fix cloned challenge task order (#13328)

* fix lint errors
2021-09-17 16:33:42 -05:00
Melvin
22db983f40
Improve the checklists in the apidocs (#13476) 2021-09-01 18:47:35 -05:00
Sabe Jones
0fb1fd5756 Merge branch 'release' into develop 2021-08-30 16:26:28 -05:00
Sabe Jones
40bf664f20 chore(analytics): various updates to analytics tracking 2021-08-30 16:21:05 -05:00
negue
53424d548a
Rework Notifications: separate and bundle to an amount of 4 (#13300)
* WIP notifications only show 2 at once

* separate and bundle notifications to pairs

* notification fadein/-out/move animations - remove notifications on an interval instead of calculated timeouts

* easier way to import all sprite css files

* add stories + fix sizes / paddings + click to hide + animation fixes

* keep notification at the top but always under the toolbars

* change animations to ease-in 0.25s + add prop to change the delay between deletion and add

* fix adding logic in a rare case of added notifications when only one item is currently visible + add debug mode

* disable lint for notification console

* add more notification example trigger buttons

* potential fix of animation / queue

* increase amount of notifications to 4

* fix sanity

* fix test:unit call again

* new notification styles - fix animations

* keep error notifications visible until manually removed + refactor adding/removal logic

* fix margins

* prevent multiple filling + different delay on filling

* stop and restart removal timer on new notifications

* reduce line-height / apply different margin for icons

* move sprites.scss out and use it in app.vue as well

* update sprites back to 31
2021-08-26 19:56:41 -05:00
Nat Welch
7870ffece8
fix(cors): Allow all origins to support 3rd party tools (#13383) 2021-08-26 18:12:11 -05:00
Jon Wolverton
f86bb98ccd
Collection quest ignoring items (#13401)
* update tests to check for issue #12664

* rewrite processCollectionQuest to allocate quest items proportionally

Removes need to check for excess items, fixing issue #12664

* move test for this bug to the correct context section & remove redundant test

* refactor processCollectionQuest more

* tweak confusing comments
2021-08-26 16:33:29 -05:00
Sabe Jones
48f1bec83a feat(content): Time Traveler quest, achievement 2021-08-24 15:42:40 -05:00
Phillip Thelen
cca1565b99
Send group ID with @mention push notifications (#13440)
This allows the apps to open the correct group page directly
2021-08-12 16:19:01 -05:00
Phillip Thelen
e830e676c3
Add additional data about dailies to task history (#13444) 2021-08-12 15:38:11 -05:00
Sabe Jones
9e9a301f04 chore(analytics): open the task firehose 2021-07-02 14:52:45 -05:00
PitiTheGrey
1037510c9d
Add 'questOwner' to the return data of a 'questActivity' webhook. (#13277)
* Update webhook.js

Add `questOwner: group.quest.leader,` to webhook.js

* Update POST-groups_groupId_quests_invite.test.js

Test if questOwner contains the correct data

* Update POST-groups_groupId_quests_invite.test.js

* Update webhooks.test.js
2021-05-28 16:59:14 -05:00
negue
a8b58815b4
Update Party / Group Sidebar / Quest states (#12793)
* move groups/sidebar to groupSidebar.vue

* lint files

* extract group/party sidebar to rightSidebar.vue

* wip stories with example data

* update stories - wip sidebar re-styling

* message party / group leader + move items to the menu

* update paddings /place for quest section

* invite to party / guild

* update labels (* Party / Guild )

* guild-background to group-background

* correct menu order + missing a label based on the group type

* no quest - styles / layout applied

* quest owner / not started - styles applied   + extracted questActions from questDetailsModal.vue to a mixin

* no challenge style

* hover with underlines

* quest-pending area layout / margins

* "Collection Quest/Quest Owner Participating" Styling Done

* group sidebar menu with icons / background

* remove most participate button styles

* fix quest-invite panel

* move "Start Quest" + add "Leave Quest"

* Not Participating + Boss + Rage Quests restyling

* party quest changes - invitedToQuest + button styles + no-items style + view details

* fix icons + rage value + colors

* fix duplicate key

* hide items label if 0 items found + hide pending damage if there is none + sidebar section margin + fix percent calculation 0 => 0%

* combine quest abandon / cancel to one call + hide begin if quest has already started + close modal if quest was canceled

* remove unused translate string

* allow leaving an accepted but inactive quest + disable leave when user is quest leader

* update "are you sure" questions - remove "doubleSureAbort" - add "sureLeaveInactive"

* sidebar margins + menu icon color

* refactored css rules

* improve some styles

* fix button spacing

* fix dropmenu with icon hover

* hide leave quest for leaders + fix quest buttons spacing

* add pending items label

* remove "X items found" label

* first round of fixes

* last v-once

* Update Quest Dialogs (#13112)

* new quest rewards panel + extract questPopover and itemWithLabel

* WIP: questInfo still not applying the row-height..

* split up start-quest-modal into select and detail modal - also rename the current quest-details to be the group-quest-details modal

* remove start-quest-modal from modal-scss

* update package-lock

* WIP before using the quest sidebar branch as a base

* move quest detail actions to the "new" details dialog

* quest details layout for owner / participant

* fix quest rewards - open details modal from sidebar

* apply quest-details dialog styles to the buyQuestModal one

* fix quest reward icons / popover / texts

* WIP back to quest selection

* fix lint

* merge selectQuestModal.vue with questDetailModal.vue + UI for the select quest

* fix margins / layout / labels

* fix quest detail + wip invitationListModal.vue / participantListModal.vue

* fix questmodal user label centered

* fix centered reward items + grouping items and adding a count-badge

* sort quests by AZ or quantity

* invitations modal

* remove console.info

* complete participantListModal.vue + extracted getClassName

* missed a file for getClassName extraction

* fix invitations

* select the actual quest on details

* fix margins on invite to party / start quest buttons

* replace buyQuestModal close button and title

* fix recursion due to the same name

* missing import

* sort quantity by highest first

* fix "Can't find a Quest to start" styles

* fix "your balance" padding

* fix quest collections / drop items

* fix member details in participants list

* fix quest info

* remove nullable because the build doesn't like it (on this file..)

* add questCompleted to the stories + fix getDropName

* replace quest-rewards in questCompleted.vue

* fix questCompleted.vue style

* delete obsolete components

* add missing spritesheets to storebook

* requested pr changes

* refactored fetchMember

* revert optional chaining

* fix merge conflicts

* fix rightSidebar hover colors - $scss var to css var

* overflow auto instead of scroll

* prevent wrapping of quest collections

* rollback to multi line quest items

* use min-width for the quest popover
2021-05-28 16:11:43 -05:00
Sabe Jones
72d0865201 feat(content): new pet color achievements 2021-05-25 14:37:15 -05:00
Sabe Jones
d5f08a1345 fix(challenges): disallow null prize
Solution by @kmacart in #11267
2021-04-30 16:58:44 -05:00
Alec Brickner
f33720e9fd
Drag challenge tasks (#12204)
* Allow challenge tasks to be draggable by leaders and admins

* Drag challenge tasks, ensure they're ordered

* Ensure group tasks are ordered properly, make draggable

* Add tests, fix broken tests

* Resolve merge conflict

* Remove console.log()

* Address code review comments

* Code review fixes

* Fix lint

* Fix importing

* taskManager

* Lint

* Fix collapseChecklist test

Co-authored-by: Sabe Jones <sabrecat@gmail.com>
2021-04-30 16:23:27 -05:00
Carlton McFarlane
a53355872b
Add checks for profanity to profile updates (#12445)
* fix(profile): detect attempt to use banned words as display name. refactor profanity detection method.

* fix(profile): detect attempt to use banned words in blurb. further refactor profanity detection. inform the user their chat privileges have been revoked.

* refactor: add function to normalize Unicode strings and remove diacritics

* fix: improve regEx to prevent false partial matches e.g. 'hello' being recognised as banned words. porting fix from #12309

* fix(profile): refactor of profanity detection for #12445

* fix(profile): add test for swear words in new profile. fix existing tests

* fix(profile): show different error message for attempted slur use in username by new users.

* fix(profile): remove incorrect slur test

* fix(profile): fix slurs not caught at start of end of strings connect by punctuation

* tests(profile): fix tests for profanity checking

* remove exclusive test

* 11865 - update text for slur warnings

* 11865 - remove unused string from locale files

* 11865 - improve naming of banned word usage locale string

* 11865 - improve logic so that differentiated warnings are shown depending on whether a slur or other profanity has been used in a display name

* 11865 - construct slur regexes outside the validation function in which they are used

* 11865 - fix tests
2021-04-30 15:47:39 -05:00
Bart Enkelaar
920a093b0e
12922 - Use absolute user URLs on production (#12968) 2021-04-29 15:23:42 -05:00
Carl Vuorinen
1d3cf368a1
Send questInvited webhook to the inviter too (#13111) 2021-04-29 14:34:17 -05:00
Helcostr
19ec9162c5
Prevent invalid characters from being used in XML. (#13181)
Patching issue of never returning XML, at the cost of "obfuscated" xml key
2021-04-19 19:08:17 +10:00
Sabe Jones
7b4b4240cb Merge branch 'release' into develop 2021-04-16 11:13:19 -05:00
Sabe Jones
8641817d78 fix(analytics): if user no longer subscriber, blank out sub field 2021-04-14 14:43:35 -05:00
Sabe Jones
3460e45ba6 Merge branch 'release' into develop 2021-04-13 15:09:57 -05:00
Sabe Jones
06f6355006 chore(analytics): Gem transfer tracking and shorten task score period 2021-04-13 14:51:19 -05:00
Felix Yan
de87fc9910
Correct a typo in website/server/models/challenge.js (#13146) 2021-04-02 16:00:52 +10:00
Sabe Jones
4cc2c985d7 Merge branch 'release' into develop 2021-03-30 15:47:17 -05:00
Sabe Jones
9b719dc144 fix(subscriptions): handle future/prebuilt mystery items 2021-03-30 15:46:52 -05:00
Sabe Jones
92be66d9ac Merge branch 'release' into develop 2021-03-30 15:20:28 -05:00
Sabe Jones
e9c69f93a6 feat(content): seasonal quest achievement 2021-03-29 17:51:33 -05:00
Sabe Jones
48451b7241 Merge branch 'release' into develop 2021-03-23 13:03:54 -05:00
Sabe Jones
676a9348d0 feat(event): March-April goodness 2021-03-23 11:58:21 -05:00
Sabe Jones
cfeee82d62 Merge branch 'release' into develop 2021-03-12 17:59:08 -06:00
Sabe Jones
665ae4ea03 feat(event): Pi Day 2021 2021-03-12 17:58:49 -06:00
Sabe Jones
d66ed032c0 Merge branch 'release' into develop 2021-03-11 16:46:52 -06:00
Sabe Jones
d2795f3ac9 fix(stats): bump level cap to 9999 and related corrections 2021-03-11 16:44:34 -06:00
Sabe Jones
e98c943541 Merge branch 'release' into develop 2021-03-10 15:37:08 -06:00
Sabe Jones
96492e5a0e fix(api): correct world, cap level 2021-03-10 15:36:17 -06:00
Sabe Jones
57be7b3d5d Merge branch 'release' into develop 2021-03-02 11:20:45 -06:00
Sabe Jones
593149abe6 fix(analytics): drop cap and Stripe platform fixes 2021-03-01 18:01:38 -06:00
Alys
5fff084fe7 adjusted banned slurs - TRIGGER / CONTENT WARNING: slurs, swearwords, assault, etc
This deletes two swear words that were causing trouble for French
speakers (they mean "delay" or "late").
It also puts English variants of those words back to the list of slurs
(IIRC, previously the base words were in that list but were moved to
swears because of the French issue).
2021-02-20 13:16:04 +10:00
Sabe Jones
ee1f95bb67 feat(content): bundle and cheevo 2021-02-16 17:00:39 -06:00
Alys
1b73c5ac0b adjust apidoc comments to say that "party" works for member routes 2021-02-02 20:13:55 +10:00
Sabe Jones
277224e4f9 Merge branch 'release' into develop 2021-02-01 14:54:16 -06:00
Alys
9a8c34f780 remove alias from apidoc Body Parameters for creating a challenge task
https://habitica.com/apidoc/#api-Task-CreateChallengeTasks

Aliases can't be added by the challenge creator as shown by this test:
2dad540d43/test/api/v3/integration/tasks/challenges/POST-tasks_challenge_id.test.js (L77-L87)

That's a requirement because in each user's account, each alias must
be unique, and you can't enforce that if the challenge creator can
assign an alias.
2021-02-01 09:37:20 +10:00
Sabe Jones
6dbbdd8070 feat(content): Habitica Birthday 2021 2021-01-28 16:56:01 -06:00
negue
1bccbc03fa
Hotfix: moving pinned items (#12935)
* increase checks for moving pinned items - fixes #10406

* allow to move official pinneditems

* using common object instead of method import
2021-01-25 17:40:18 -06:00
Bart Enkelaar
a543531956
Fix error logs in client unit tests from setTitle (#12967) 2021-01-25 16:52:26 -06:00
Sabe Jones
4db1b1cdfa Merge branch 'develop' into release 2021-01-22 14:09:49 -06:00
bakerty
db3d233ae5
Make start date and day of month aware of timezones (fixes #12555) (#12696)
* WIP: #12555

-dayOfMonth takes timezone into account on task update for monthly dailys
-startDate set to start of day in user's tz on task update for monthly
dailys
-tweaked a test so that it's actually testing something

* WIP: 12555

-task.startDate gets set to start of day in user's tz on task creation
and task update
-set preferences.timezoneOffset to nonzero value in certian test user objects
-removed date literals in test:api-v3:integration:tasks:PUT
2021-01-10 16:02:40 +01:00
Sabe Jones
04e366d498 Merge branch 'develop' into release 2021-01-08 13:11:02 -06:00
Sabe Jones
2d5ddfdd87 fix(event): borken Gold gear
and default sub analytics to web
2021-01-08 13:10:45 -06:00
Matteo Pagliazzi
1dc8be4842
Stripe Upgrade Cleanup (#12882)
* chore(stripe): remove manual api version from code

* upgrade minor stripe version
2021-01-07 17:32:54 +01:00
dependabot-preview[bot]
405f744770
build(deps): bump mongoose from 5.11.8 to 5.11.9 (#12927)
* build(deps): bump mongoose from 5.11.8 to 5.11.9

Bumps [mongoose](https://github.com/Automattic/mongoose) from 5.11.8 to 5.11.9.
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/History.md)
- [Commits](https://github.com/Automattic/mongoose/compare/5.11.8...5.11.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* fix(join group): update inviter once

* mongoose@5.11.10

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
2021-01-04 21:37:51 +01:00
Sabe Jones
595a31db99 feat(content): NYE hats 2020-12-29 18:58:57 -06:00
Matteo Pagliazzi
17d918a172 fix(stripe): use new data structure for webhooks event.request 2020-12-26 16:45:36 +01:00
Shadow
7c0b3612f0
Change $type of date for todos (#12779)
* change $type to date for task and add new test

* adjust apidocs to reflect type change

* migration test for api date $type change

* minor fixes to migration

* unset instead of set empty string

* add type filter

* fix(todo date migration): make sure the update command works and limit update ops

Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
2020-12-24 18:37:09 +01:00
Sabe Jones
f0d6204968 Revert "fix(event): give notif to newbies"
This reverts commit cdb5ccf76a.
2020-12-16 18:40:53 -06:00
Sabe Jones
427654d8bd fix(event): give notif to newbies 2020-12-16 17:49:31 -06:00
Sabe Jones
395e1c25d4 fix(g1g1): correct blank private message 2020-12-15 16:07:31 -06:00
Matteo Pagliazzi
6d34319455
Stripe: upgrade module and API, switch to Checkout (#12785)
* upgrade stripe module

* switch stripe api to latest version

* fix api version in tests

* start upgrading client and server

* client: switch to redirect

* implement checkout session creation for gems, start implementing webhooks

* stripe: start refactoring one time payments

* working gems and gift payments

* start adding support for subscriptions

* stripe: migrate subscriptions and fix cancelling sub

* allow upgrading group plans

* remove console.log statements

* group plans: upgrade from static page / create new one

* fix #11885, correct group plan modal title

* silence more stripe webhooks

* fix group plans redirects

* implement editing payment method

* start cleaning up code

* fix(stripe): update in-code docs, fix eslint issues

* subscriptions tests

* remove and skip old tests

* skip integration tests

* fix client build

* stripe webhooks: throw error if request fails

* subscriptions: correctly pass groupId

* remove console.log

* stripe: add unit tests for one time payments

* wip: stripe checkout tests

* stripe createCheckoutSession unit tests

* stripe createCheckoutSession unit tests

* stripe createCheckoutSession unit tests (editing card)

* fix existing webhooks tests

* add new webhooks tests

* add more webhooks tests

* fix lint

* stripe integration tests

* better error handling when retrieving customer from stripe

* client: remove unused strings and improve error handling

* payments: limit gift message length (server)

* payments: limit gift message length (client)

* fix redirects when payment is cancelled

* add back "subUpdateCard" string

* fix redirects when editing a sub card, use proper names for products, check subs when gifting
2020-12-14 15:59:17 +01:00
Sophie Lau
f06fefe9c0
Corrected recipient email address in reported PM Slack notification - fixes #12256 (#12838)
* Corrected recipient email address in reported PM Slack notification

Corrected the recipient email address in the Slack notification sent to moderators when a user reports their own private message.

* Installed new dependencies

* Removed personal comments

Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
2020-12-13 18:15:19 +01:00
Sabe Jones
119502f285 fix(event): address code comments, add banner gradient 2020-12-11 15:59:41 -06:00
Sabe Jones
f2b53f651e fix(subscriptions): don't save user during message send 2020-12-11 14:06:23 -06:00
Sabe Jones
0e1011b875 Revert "fix(subscriptions): avoid parallelSave from recursive fn call"
This reverts commit ff93dd9159.
2020-12-11 11:08:31 -06:00
Sabe Jones
ff93dd9159 fix(subscriptions): avoid parallelSave from recursive fn call 2020-12-10 19:22:54 -06:00
Sabe Jones
53f19c4da3 feat(event): Winter Wonderland 2021 and Gift-One-Get-One Promotion 2020-12-10 16:53:37 -06:00
Sabe Jones
637048af0b Merge branch 'release' into develop 2020-11-30 15:01:07 -06:00
jbusa22
f077e40c4c
use or clause for display name and username search (#12820)
* use or clause for display name and username search

* update styling

* More style fix

* update comment and regex
2020-11-30 20:05:58 +01:00
Denys Dorokhov
3ce182d0dc
Feature/enhance get memebers for a challenge fixes #12481 (#12716)
* refactor(api-members): separate handler for the GET /challenges/:challengeId/members route

* refactor(api-members): challenges-related code removed from _getMembersForItem handler function

* feat(api-members): added support to the new includeTasks query parameter for the GET /challenges/:challengeId/members route

* fix(api-members): adjustments to the GET /challenges/:challengeId/members route

* fix(api-members): merge of _getMembersTasksFromChallenge and additional check for a test suite

* refactor(api-members): includeAllMembers query parameter got removed from the GET /challenges/:challengeId/members route

* GET-challenges_challengeId_members.test.js: use _id

* members.js: use _id instead of id

* use id instead of _id

* _id instead of id

Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com>
2020-11-30 20:04:17 +01:00
Matteo Pagliazzi
6a658c45b5
Upgrade some deps: helmet, slack, amplitude and short-uuid (#12817)
* upgrade helmet to version 4

* deps(short-uuid): upgrade to version 4, closes #12573

* deps(slack): upgrade to version 4

* deps(slack): upgrade to version 5, closes #11442

* deps(amplitude): upgrade to latest version use api v2

* fix tests

* slack tests: return promise

* refactor slack setup for tests

* fix slack unit tests
2020-11-30 20:03:04 +01:00
Matteo Pagliazzi
51b50bfa3c
Upgrade APN module (#12818)
* switch apn module to up to date version @parse/apn

* remove old module

* fix unit tests
2020-11-30 20:00:57 +01:00
Matteo Pagliazzi
7745a0e65a fix(analytics): always use mock service in development 2020-11-29 23:15:26 +01:00