Commit Graph

983 Commits (4b63f9937cd4fa162b4dbb10685c22590e90862d)

Author SHA1 Message Date
Barış Soner Uşaklı 4170abfd6b feat: add utils.promiseParallel
Barış Soner Uşaklı 805dcd7ca2
Async refactor in place ()
* feat: allow both callback&and await

* feat: ignore async key

* feat: callbackify and promisify in same file

* Revert "feat: callbackify and promisify in same file"

This reverts commit cea206a9b8e6d8295310074b18cc82a504487862.

* feat: no need to store .callbackify

* feat: change getTopics to async

* feat: remove .async

* fix: byScore

* feat: rewrite topics/index and social with async/await

* fix: rewrite topics/data.js

fix issue with async.waterfall, only pass result if its not undefined

* feat: add callbackify to redis/psql

* feat: psql use await

* fix: redis 🌋

* feat: less returns

* feat: more await rewrite

* fix: redis tests

* feat: convert sortedSetAdd

rewrite psql transaction to async/await

* feat: 🐶

* feat: test

* feat: log client and query

* feat: log bind

* feat: more logs

* feat: more logs

* feat: check perform

* feat: dont callbackify transaction

* feat: remove logs

* fix: main functions

* feat: more logs

* fix: increment

* fix: rename

* feat: remove cls

* fix: remove console.log

* feat: add deprecation message to .async usage

* feat: update more dbal methods

* fix: redis :voodoo:

* feat:  fix redis zrem, convert setObject

* feat: upgrade getObject methods

* fix: psql getObjectField

* fix: redis tests

* feat: getObjectKeys

* feat: getObjectValues

* feat: isObjectField

* fix: add missing return

* feat: delObjectField

* feat: incrObjectField

* fix: add missing await

* feat: remove exposed helpers

* feat: list methods

* feat: flush/empty

* feat: delete

* fix: redis delete all

* feat: get/set

* feat: incr/rename

* feat: type

* feat: expire

* feat: setAdd

* feat: setRemove

* feat: isSetMember

* feat: getSetMembers

* feat: setCount, setRemoveRandom

* feat: zcard,zcount

* feat: sortedSetRank

* feat: isSortedSetMember

* feat: zincrby

* feat: sortedSetLex

* feat: processSortedSet

* fix: add mising await

* feat: debug psql

* fix: psql test

* fix: test

* fix: another test

* fix: test fix

* fix: psql tests

* feat: remove logs

* feat: user arrow func

use builtin async promises

* feat: topic bookmarks

* feat: topic.delete

* feat: topic.restore

* feat: topics.purge

* feat: merge

* feat: suggested

* feat: topics/user.js

* feat: topics modules

* feat: topics/follow

* fix: deprecation msg

* feat: fork

* feat: topics/posts

* feat: sorted/recent

* feat: topic/teaser

* feat: topics/tools

* feat: topics/unread

* feat: add back node versions

disable deprecation notice
wrap async controllers in try/catch

* feat: use db directly

* feat: promisify in place

* fix: redis/psql

* feat: deprecation message

logs for psql

* feat: more logs

* feat: more logs

* feat: logs again

* feat: more logs

* fix: call release

* feat: restore travis, remove logs

* fix: loops

* feat: remove .async. usage
Julian Lam 8a6a58ee43
feat: added new admin option newbiePostEditDuration ()
* feat: added new admin option newbiePostEditDuration

Also:
  - Grammar-checked a couple language strings
  - Moved a couple form inputs around in new user restrictions
  - Added a test for the new option
  - fix: 'defore' typo
Barış Soner Uşaklı bd640a1107
Topic await errors ()
* feat: derp await

* feat: restore user.getSettings

* feat: cleanup

* feat: make tid const

* feat: cleanup

* fix: tests

* feat: deprecate filter:controllers.topic.get

* feat: rewrite post-index logic

* feat: change calculation to match others

* fix: use .async

* feat: remove try/catch wrapper
Barış Soner Uşaklı 3ecd703ea3 feat: , added sortedSetAddBulk
Barış Soner Uşaklı a39f0ef592 fix: , create per category user post zsets
Julian Lam 289dada5f7 fix(deps): update to eslint@6
Aziz Khoury a6436716ea feat: hooks can now return promise or call callbacks
* hooks can now return promise or call callbacks, either way works

* cleanups

* moar cleanups and fix callback 1st null arg

* rm unnessesary spread
Barış Soner Uşaklı 4b843ba16f fix: , allow invite and approval at the same time
Baris Usakli 31ccc860d3 feat: allow multiple scores in sortedSetsAdd
Barış Soner Uşaklı 8aef689f05 fix: no need for moderate bit for global mods and admins
Barış Soner Uşaklı 035f624758
Remove implicit mod privs. closes ()
* feat: add upgrade script to give mods privs

* feat: give all privileges when making a moderator

* feat: remove implicit privs

* feat: give global mods default privs

* feat: more priv fixes

* feat: use lodash

* fix: remove implicit mod priv from topic delete

* fix: more privs

* fix: posts.canEdit

* fix: canDelete and canEdit

* fix: tests, remove console.log

* feat: shorter functions

* feat: add tests

* fix: uids

* fix: redis random test fail
Baris Usakli 64679b37cc fix: , fix getModeratorUids
sets.groupNames is an array that contains other arrays of groupnames so passing it to getMembersOfGroups returned wrong results when there were more than 1 element in it.
Barış Soner Uşaklı dfab231afd
Copy group privs ()
* feat: ability to copy a groups privileges

ability to copy a group's privileges to all categories, or children of current category

* feat: switch to dropdown

added copy from category to groups

* fix: indents
Barış Soner Uşaklı b990312088 fix: test
Barış Soner Uşaklı 2c98dd5f9d
Object cache refactor ()
* fix: cache refactor

db.getObjectField no longer loads entire object
db.getObjectsFields only clones data once
more tests

* feat: add back cache to redis

db.getObjectField no longer loads entire object
Julian Lam 808c4909a4
fix: only apply whitelist when fields request empty ()
* fix:  only apply whitelist when fields request empty

* feat: explicit password retrieval denied via getUsersFields
Aziz Khoury 3fbb6faf28 feat: update unban logic/invocation and refactor User.bans module
* auto unban when User.getUsersFields is called and the user is banned but has expired

* cleanups and removal of expiry_readable

* expiry_readable make an alias for backward compatibility

* User.bans.func vs User.*ban*Func

* console.log cleanups, plus todo message added

* use code util.deprecate

* fix: remove ununsed winston require
Barış Soner Uşaklı 2ee2cd528f feat:
Barış Soner Uşaklı b52dba5c92 fix:
Barış Soner Uşaklı c12e1d19a7 fix: tests
Julian Lam 697a6597f3
fix: Re-factor handling of og:image tags ()
* fix: display proper site logo or og-image with sizes in head

* fix: refactor og:image logic, 

- Updated logic to set additional og:image tags based on more
  factors
- logo.png fallback

* feat: save image sizes on post upload, re: 

* fix: awaiting addTags in topic controller

* fix: pass strings to meta tags object

* fix: sending absolute image url to meta tag

* fix: removed unneeded async and requiring sync db

* feat: upgrade to calculate image sizes for all post uploads tracked

* fix: tests
Julian Lam 745a9589e9
Use topics:read privilege for topic filtering use cases ()
* fix: use topics:read privilege for topic filtering use cases

* fix: tests

* fix: more broken tests
Baris Usakli f9d92db5d5 fix: typo
Baris Usakli e71ae80cbc fix: tests
Baris Usakli 23da300958 feat: pass options to digest
Julian Lam d3a10628e7 fix: broken 50% border radius on emails, failing tests
Julian Lam 3a7f1c192b fix: failing tests from revamped-emails branch
Barış Soner Uşaklı c6ad8fae2a fix:
Barış Soner Uşaklı 5917dec288
fix: only allow numbers as scores ()
* zadd score checks

* fix: only allow numbers as scores

* fix: convert values to strings
Julian Lam 0c09b7402d feat: logging password resets and errors into event log
closes , also adds tests for password reset socket calls
Barış Soner Uşaklı c72da5595a fix:
3 new global privileges
view:users
view:tags
view:groups
Barış Soner Uşaklı ae779ea4f9 fix:
Barış Soner Uşaklı 9d1fcf4e36 fix: closes
Barış Soner Uşaklı 5353960ae7 fix:
Barış Soner Uşaklı bc41848adb fix: test
renovate[bot] 8a64667ff8 fix(deps): update dependency sharp to v0.21.3 ()
* fix(deps): update dependency sharp to v0.21.3

* fix: tests for new sharp version errors
Julian Lam c831ff0de3
fix: removal of timeago fallback middleware ()
* fix: removal of timeago fallback middleware

Instead of loading English fallback on missing language, we opt
to not send a script tag for a missing language to begin with.

Timeago already loads with English as default, so it will just
continue to use English.

* fix: check userLang against supported language codes

* fix: cleaned up code as per @pitaj

* fix: added comments

* fix: more fixes as per @pitaj

* feat: added addl. test for timeago locales, fixed broken test
Julian Lam 70a87d4399
feat: support for one-click unsubscribe from email clients ()
* feat: sending notifs via ACP creates real notification

re: 

* feat: basic integration for one-click unsubscription 

* feat: tests for  + bugfix

* feat: added and organized digest unsub tests

closes 
renovate[bot] 84e228bbb8 fix(deps): update dependency diff to v4 ()
* fix(deps): update dependency diff to v4

* chore(deps): +diff@4.0.1

* fix: test for 
Baris Usakli 7809ba2800 fix: , closes
Barış Soner Uşaklı 3917022a48 fix:
Barış Soner Uşaklı 7e828404f6 fix:
dont save relative_path in db for group covers
Baris Usakli 0c1ac4d6a2 feat:
Barış Soner Uşaklı fef7e13c9e feat: small fixes
Barış Soner Uşaklı 99e0895e99 fix: move the check to get methods
all .post methods will have csrf
Barış Soner Uşaklı eb7ae54f81
Category watch state ()
* feat: wip, category watch change

* feat: pass data to client

* feat: allow changing state

* fix: account page categories

* fix: show in unread if topic is followed or category is watched

* feat: add default watch state to acp

* feat: save user category watch state

* feat: update unread recent pages

* fix: remove dupe code

* fix: flip conditions

* fix: handle empty arrays

* fix: ignore/watch on others profile

* feat: upgrade script for category states

if there are any users ignoring categories set their state in new zset and delete cid:<cid>:ignorers

* fix: upgrade

* fix: tests

* fix: redis count

* fix: more tests
Barış Soner Uşaklı 263c918088
feat: remove uid:<uid>:ignored:cids ()
use cid:<cid>:ignorers instead
Barış Soner Uşaklı 26ccd8f626 fix: db info page
if there is no connection to db, connect first
Barış Soner Uşaklı 81aa3a0b8a fix: don't crash in flags.validate if user blocked target
Barış Soner Uşaklı e55fb43703 fix:
Baris Usakli e65d40c937 dont return undefined from sortedSetsCard if keys is empty or falsy
Baris Usakli 76af8caf58 add missing semicolon
Baris Usakli 420227faae parseFloat scores
Julian Lam 5f3d1c76c8
fix: , autoLocale logic not playing nicely with no-refresh auths ()
* fix: , autoLocale logic not playing nicely with no-refresh auths

- on login, req.query.lang is deleted (since it seems to be left over)
- on logout, the middleware.autoLocale is executed, which resets
  req.query.lang
- middleware.autoLocale is new, just refactored existing logic in
  webserver.js into new middleware method.

* style: tests, use lodash

* fix: timeago strings not switching languages on login or out
Baris Usakli d3c6cba33f closes
Barış Soner Uşaklı a63ddbe2aa fix:
if category doesn't exist return null and 404
Barış Soner Uşaklı 1f918ca8f8
Home route ()
* fix: WIP home fix

* remove console.log

* fix: 

on redis run all tests in subfolder /forum
fix URI errors
fix sping/ping
Baris Usakli cd46febdd0 fix lint
Baris Usakli b86f155690 fix:
Peter Jaszkowiak ba619c7ec8 style(eslint): match operator-linebreak preferences
Barış Soner Uşaklı 00a066985a cache categories:cid and cid:<cid>:children
these rarely change, no need to go to db for them
Barış Soner Uşaklı c240733aee fix logs test
Barış Soner Uşaklı 0361849bb1 check status code
Barış Soner Uşaklı 47b2057f20
Barış Soner Uşaklı 53ad2bbd6e
Categories optimize ()
* WIP

* fix category page

* fix counts, and copyPrivileges

* fix lint

* more fixes,

* redis fix

* fix test

* fix  category test

* remove getParentsAndChildren
Barış Soner Uşaklı 9d28b935fd dont load uid 0, -1 from db
Barış Soner Uşaklı a6864a8055 add groupTitle test for guests
Barış Soner Uşaklı ca1e3a758b
Baris Usakli b83e50f286 remove delayImageLoading from api @julianlam
Barış Soner Uşaklı afa84023a2 closes
Barış Soner Uşaklı f8e219c323 handle empty set, add test
Barış Soner Uşaklı b6771836cf closes
Baris Usakli 62787368c6 add searchonly option to searh api
Julian Lam da10ca084b fix: , allow square brackets in usernames
renovate[bot] 64b9dabff8 chore(deps): update dependency eslint-config-airbnb-base to v13 ()
* chore(deps): update dependency eslint-config-airbnb-base to v13

* chore: , linting 😬
Barış Soner Uşaklı 75816deca7
add cache to redis ()
* add cache to redis

move out cache module from mongo

* fix redis tests

* add callback noop

* fix typo

* del cache on field delete

* make redis/mongo caches separate
Julian Lam 501b3a79ca
Refactor skins to be built on server-side ()
* WIP

* using bootswatch from npm instead of bootswatch CDN url

* feat: on-demand client css building for skins

* added ability for client-side to select a skin

* updated loading and saving logic of bootstrapSkin on client side user settings

* fix: broken test for 
Baris Usakli 3c611d85ed closes
- on category setParent dialog do not show children of current category
- break recursion if category parentCid is equal to child cid to prevent
infinite loop
- dont allow setting the parentCid of a category to one of it's children
Peter Jaszkowiak 9a32118418 Enable `require.main.require` in tests ()
Barış Soner Uşaklı d3e4daebec posts/delete cleanup
Barış Soner Uşaklı 7aa937a657 remove dupe code in mongodb sorted
Barış Soner Uşaklı ea1e8fb8fe Merge branch 'master' of https://github.com/NodeBB/NodeBB
Barış Soner Uşaklı 19e6c61244 add new test for queue
Barış Soner Uşaklı c27be9db5a
Recent refactor ()
* wip

* fix inf scroll

* remove duplicated code

* remove dupe code in /unread

* use topicList

* update tag page to use topicList

* fix tests

* combine ifs

* remove more dupe code

* disable timeout
Baris Usakli 566564ed74 fix redis tests
fixed typo in groups/data.js
added postcount,viewcount to int fields
Barış Soner Uşaklı fb6067a7ca only parse if field is requested
Barış Soner Uşaklı f3a679e268 remove parseInts
Barış Soner Uşaklı 9c03881d5a add threshold for image resizing
Barış Soner Uşaklı 537b7ff7e8 remove more parseInts
Baris Usakli a228dc2de9 closes
Barış Soner Uşaklı 175e13edf6 group data
Barış Soner Uşaklı c30ff42817 test for hooks page
Barış Soner Uşaklı c738dc7d3e remove some more parseInts
Barış Soner Uşaklı 7a44424214 parse '123' to 123 if it has no default
Barış Soner Uşaklı d07e3e6d97 if not in defaults use string
Barış Soner Uşaklı 4fff5e9baf closes
Barış Soner Uşaklı ac39112271 remove more parseInts
Barış Soner Uşaklı 9c022afae1
Parse int ()
* Store config fields as JSON in the db

Fewer parseInts

* Remove unnecessary parseInts

* remove some dupe code add tests

* remove console.log

* remove more parseInts

* WIP: read meta.configs defaults from defaults.json

remove more parseInts

* more work

* add log for failing test

* update admin pwd

* fix tests, dont require posts/cache before configs are initialized

* handle saves

* Test boolean conditions

* remove more parseInts

* Fix boolean values

* remove lots more parseInts

* removed json parsing

* renamed var to number

* categories dont have timestamp
Barış Soner Uşaklı ee2f9e9434 remove some parseInts
Barış Soner Uşaklı 26d4e0852f use includes instead of indexOf
use _.uniq instead of filter&indexOf
Barış Soner Uşaklı 038f97b0f5 more settings tests
Barış Soner Uşaklı 8c9754ecee add test for /admin/settings/user
Barış Soner Uşaklı 250e8c01ff closes
Barış Soner Uşaklı da1a90a470 add search test
Baris Usakli baf91089a6 remove unused methods
Baris Usakli 74fdadf8a6 test pubsub cache
Baris Usakli 444fd70ba3 test pubsub
Barış Soner Uşaklı 986511e718 try with higher timeout
Barış Soner Uşaklı 1d15dc089b revert isCluster
Barış Soner Uşaklı aa567a5f2d print out connString and opts
Barış Soner Uşaklı 38ce83304d up widget essentials
Barış Soner Uşaklı 2d8d234c57 test mongodb again
Barış Soner Uşaklı 8f7482955d set cluster to false again
Barış Soner Uşaklı fd31ad3cfe disable busy check on tests
Barış Soner Uşaklı f4df89fe90 closes
Barış Soner Uşaklı 5dbc7f032a reset post cache between each suite
Barış Soner Uşaklı fc68263f91 change to TEST_ENV
Barış Soner Uşaklı 45b6e56665 add node_env to tests
Barış Soner Uşaklı 85c60316ed
upgrade to winston 3.1, closes ()
* upgrade to winston 3.1

* fix winston in web/install and tests
Barış Soner Uşaklı b57db7fd8e
update groups join to take array of group names ()
* allow groups.join to take an array of group names

* pass an array to groups.join/leave in privileges

* split up groups/membership

* add hits/miss to group cache

* fix typo
Barış Soner Uşaklı c06480b82e add tests for blocked users teaser/unread
Barış Soner Uşaklı d4db8c2d42 removed reset
Barış Soner Uşaklı 1024a0efa1 add reset to pubsub for tests
Baris Usakli 7d8fc09226 add test for pubsub
Baris Usakli 28f2144933 remove time out on plugin upgrade test
Baris Usakli a867b77509 add assert message to test
Barış Soner Uşaklı e615391b22 convert values to string before removing
Barış Soner Uşaklı 5c7dd54815
fix zsets and update them on post move, closes ()
Baris Usakli 5f49a1d82c disable timeout on build templates
Baris Usakli 9ed4239d8e small changes and test for user/:slug/categories
Barış Soner Uşaklı b58ab48485 add test for /sessions controller
Barış Soner Uşaklı a7c4c59121 change to series
Barış Soner Uşaklı 1bea247748 add username/email to user-delete event
Barış Soner Uşaklı f77091d1ed change user delete so it returns quickly
Barış Soner Uşaklı 805da98a36 remove unnecessary groups.resetCache calls
Barış Soner Uşaklı 061b279c48 Merge branch 'master' of https://github.com/NodeBB/NodeBB
Barış Soner Uşaklı 77beaf2e15
Allow local login,closes ()
* WIP

* reset groups cache after every suite
Barış Soner Uşaklı 2bd02a7ae1 disable timeout on plugin installs
Barış Soner Uşaklı 944972c6f2 change to series
Barış Soner Uşaklı 18d0deeccb
update deprecated methods ()
Barış Soner Uşaklı 1cb2e1e368 remove console.log switch to series
Barış Soner Uşaklı f618ba8e1e add private category test for unread tids
Barış Soner Uşaklı 95501e8fee
closes closes ()
* closes  closes 

* fix test, delete keys

* delete all bans on user delete

* fix upgrade script to actually read reason
Barış Soner Uşaklı 59b988a205 change test so it checks url
Barış Soner Uşaklı b7ead6dc9c
Replace jimp with sharp ()
* add probe image size and max image size

* replace jimp and image-probe with sharp

* better name for test

* resize with just path

* resize thumb inplace

* use filename
Barış Soner Uşaklı ea1697d073 remove console.log
Barış Soner Uşaklı 25fed0aa8d change isPasswordCorrect to return false if user does not have password
Barış Soner Uşaklı 2a2e8136cd
fix tests
Ben Lubar 33228bb7fe PostgreSQL database driver ()
* [test/database/list] Fix test list 4 being used in two different tests

* [database/postgres] PostgreSQL database driver

* [database/postgres] Make transactions work based on continuation scope.

* [database/postgres] Implement nested transactions

* eslint --fix

* Add database changes from earlier this week to the PostgreSQL driver.

* Fix typo

* Fix postgres.incrObjectFieldBy returning undefined instead of null when given NaN

* [database/postgres] Fix sortedSetsCard returning an array of strings.

* Update socket.io postgres adapter

* Fix PostgreSQL erroring when multiple updates are made to the same sorted set entry in a single operation.

Add a test case to catch this error.

* Fix lint errors.

* Only prune sessions on one instance in a cluster to avoid deadlocks.

They're caught and handled by the database server, but they spam the logs.

* Fix arguments.slice.
Barış Soner Uşaklı fa499aef18 closes
Baris Usakli 546b13b897 fix lint and tests
Barış Soner Uşaklı c7d6cacd98 closes
Peter Jaszkowiak 04d31fe1d4 Precompile all templates
- Benchpress compilation is 33x faster now
- Native module with JS fallback and pre-built binaries
- Dev template build is <1sec now
- Minified template build is ~5sec (uglify accounts for almost all)
Barış Soner Uşaklı 3449cf321b add back cache and pubsub
Barış Soner Uşaklı ae0563375e derp
Baris Usakli 584f88e092 blocks WIP
Baris Usakli be1e83bfc1 fix tests
Barış Soner Uşaklı 82b2a20d0c user tests
Barış Soner Uşaklı ccad95cf73 closes
Barış Soner Uşaklı 2fd2accf8c add tests for top topics
fix popular page displaying 18 topics per page
Barış Soner Uşaklı 4684ab3bf6 suggest topic test
Barış Soner Uşaklı c3fc4a06bf test sortedSetUnion with scores
Julian Lam 8d41e319ea fixed tests
Julian Lam 8e832abf1e additional tests for post diffs privilege checking
Julian Lam 510dd268cc fix tests
Barış Soner Uşaklı 14f6e74bad closes
Barış Soner Uşaklı a7267df404 closes
Barış Soner Uşaklı 4504bbae52 2 diff test
Barış Soner Uşaklı 229e49cf8f closes , closes
Barış Soner Uşaklı 65dc530df5 some controller tests
Barış Soner Uşaklı d977934c66 adjust username test
Barış Soner Uşaklı 8e8058ec6e closes
Julian Lam 445b92ae38 Revert "fix some tests"
This reverts commit 2551df80f7.
Barış Soner Uşaklı cdc3ef09e9 closes
Julian Lam 2551df80f7 fix some tests
Barış Soner Uşaklı 9132743870
Julian Lam 5dc25a3c00 Merge remote-tracking branch 'origin/master' into chat-kick-support
Julian Lam a08572b800 kick support for chats,
Barış Soner Uşaklı beadcd7857 fix tests, remove dupe exposeUid
Julian Lam dc386b5b23 Merge branch 'master' into user-blocking
Julian Lam a0643b63df uncommenting tests again
Julian Lam 8db98b5cf4 additional UCP integration for
Barış Soner Uşaklı bc18b489e6 fix group test
Barış Soner Uşaklı 9ae5946e7a Merge remote-tracking branch 'refs/remotes/origin/master' into develop
Julian Lam 3951bb9532 Merge remote-tracking branch 'origin/master' into user-blocking
Barış Soner Uşaklı 505e511e4d fix tests
Julian Lam 322d8236d2 added test for User.blocks.is, re:
Julian Lam 032ec8b443 tests!!! glorious tests!!!
re: 
Julian Lam 1f1e055509 updated post association code to only associate files that exist, closes
Julian Lam 0f13ae3c87 added isOrphan method,
Julian Lam 2e125293e6 save reverse association of md5 of upload to pid,
Julian Lam 850f59a1ae additional functionality, integration, and testing for
Julian Lam 5943389b7a tests for
Julian Lam 6088c37f5a Revert "fixing tests"
Turns out baris already fixed them

This reverts commit 3bc0266aa4.
Julian Lam 3bc0266aa4 fixing tests
Barış Soner Uşaklı ed289ebeab two more text fixes
Julian Lam 65c8457898 fixing tests that broke due to gdpr requirement
Barış Soner Uşaklı 04979f86a8 delete users uploads on account delete
store uid:<uid>:uploads
Barış Soner Uşaklı 0070f5c1b2 Merge remote-tracking branch 'refs/remotes/origin/master' into develop
Julian Lam 0158b1aa91 Various password logic fixes on client and server-side
Fixes 
Fixes 
Barış Soner Uşaklı ae0f1847ae allow multiple origins for access-control-allow-origin header
add access-control-allow-credentials header to acp
Julian Lam bf2e905ced fixed tests, closes
Peter Jaszkowiak eaae5b52cd ACP quick actions ()
* ACP quick actions

- Moved restart, build & restart, and logout into separate buttons
- Moved buttons on mobile into the side menu
- Added version and upgrade alert to header / mobile menu
- Moved version checking to server-side with a cache for rate limiting
- Changed "reload" translations to "rebuild and restart"

* Change info alert to black-on-white to match focused search bar

* Fix tests

* Fallback for failed fetch of latest version
Barış Soner Uşaklı fde44cb9b9 pass array to groups.destroy
pass array to db.sortedSetRemove
Barış Soner Uşaklı be5c237388 fix decr/incrObjectField if key in array doesn't exist create it
Barış Soner Uşaklı 6a9a73c86c changes to leaveAllGroups
Groups.destroy can take an array of groupnames
Groups.leave can take an array of groupnames
db.incrObjectField/decrObjectField can take an array of keys
db.sortedSetRemove can take an array of keys and values
db.setRemove can take an array of keys
Barış Soner Uşaklı 7221b71b68 add test for srem with multi elements
Baris Usakli 959a742c63 add llen to dbal
Julian Lam 9ea6dbc0e7 fix flag tests
Barış Soner Uşaklı bce640e514 closes
Julian Lam c93f943bef Merge branch 'develop'
Barış Soner Uşaklı e1c6761087 closes
Barış Soner Uşaklı 7b45a6ea8b Merge remote-tracking branch 'refs/remotes/origin/master' into develop
Julian Lam 0d65cec3d0 fixing tests
Baris Usakli 9b78b95c47 fix tests
Julian Lam 1ce448f2a1 Merge remote-tracking branch 'origin/master' into develop
Barış Soner Uşaklı 15e9bbac92 closes
Barış Soner Uşaklı 723f31a362 closes
Baris Usakli e99d4a5c61 closes
Baris Usakli ecc2b9560d parseInt data.hidden add tests
Barış Soner Uşaklı 7a2d6fe22d Merge remote-tracking branch 'refs/remotes/origin/master' into develop
Barış Soner Uşaklı b084a596fa closes
Barış Soner Uşaklı 155e20d216 Merge remote-tracking branch 'refs/remotes/origin/master' into develop
Barış Soner Uşaklı 0a5d16d1cd closes
Barış Soner Uşaklı 33a8cb947e Merge remote-tracking branch 'refs/remotes/origin/master' into develop
Barış Soner Uşaklı d8b5d40668 closes
Julian Lam 457194b333 Merge branch 'master' into develop
Barış Soner Uşaklı f3fda152bf closes
Barış Soner Uşaklı 72140e5338 closes , closes
Ben Lubar 5b1ed21634 [database/mongo] Improve speed of sortedSetRank ()
* [database/mongo] Improve speed of sortedSetRank

* [database/mongo] Fix sortedSetRank to filter by _key
Julian Lam c47987b305 fixed test for error when adding self to chat
Julian Lam f37b9d786d Merge remote-tracking branch 'origin/master' into develop
Barış Soner Uşaklı a2ba01b0d7 fix test
Barış Soner Uşaklı 2f3b7279be closes
Julian Lam ec07247854 Merge remote-tracking branch 'origin/master' into develop
Baris Usakli ecf6c0f3ec closes
Barış Soner Uşaklı 7eab9f6ab0 add missing ;
Barış Soner Uşaklı fdb221c106 fix helper test
Peter Jaszkowiak 4387d5d466 Ensure installed correct version of modules on startup, bump dependencies ()
* Ensure installed correct version of modules

* Bump dependencies

* Bump promise-polyfill

* Fix emailer test

* Fix auto-install regression

introduced in 9b5e0f9e95
Julian Lam d1ccd78ac2 Merge remote-tracking branch 'origin/master' into develop
Barış Soner Uşaklı 8446a733e5 closes
Barış Soner Uşaklı 87d40e9e78 fix increment to use data
Barış Soner Uşaklı ff6c6a54c1 make upload permissions global
give upload image permission to registered users on install
add global privileges to app.user.privileges for client side use
Julian Lam 82a95a03be Chat message soft deletion -- closes
Squashed commit of the following:

commit f84c06bdcc45f24ef7ffde6a8f33b48d8f97fc36
Author: Julian Lam <julian@nodebb.org>
Date:   Mon Dec 18 14:42:47 2017 -0500

    added restore handler for chat messages

commit 725cd370c6ea1e8f4a28298350f3dc024d4e668e
Author: Julian Lam <julian@nodebb.org>
Date:   Mon Dec 18 14:23:52 2017 -0500

    backend logic and testing complete for deletion and restoration of chat messages

commit 072da758319cc93fa4c6f8bc0d672a1b716dc06e
Author: Julian Lam <julian@nodebb.org>
Date:   Mon Dec 18 13:52:35 2017 -0500

    changing message delete logic to not remove mids, but to filter when retrieving

commit 68bf373305ab82737658a7c31dc5549af4d6d69f
Author: Julian Lam <julian@nodebb.org>
Date:   Mon Dec 18 12:37:58 2017 -0500

    logic to handle deletion of a deleted chat message -- added some failing tests

commit 6899d0d234fa752e227188aa69cfcabd0d0500cc
Author: Julian Lam <julian@nodebb.org>
Date:   Mon Dec 18 11:35:36 2017 -0500

    chat message deletion logic
Julian Lam 88b47f357b removed user.uploadFromUrl and associated logic as cropped image modal supercedes it @pichalite
Barış Soner Uşaklı 108c3c980a show invalid url error if request.head fails
Barış Soner Uşaklı b778c8433a change hook name
Barış Soner Uşaklı b55087dab7 closes
Barış Soner Uşaklı ea83be50a1 closes