The new isCommentOnly property needs to be set when
Sandstorm updates user permissions, because otherwise
a schema validation error occurs and users never get
added as members of boards.
The bug comes for 9154b06 which this commit partially reverts. The
synchronization between the user document profile and the Sandstorm
HTTP headers is still not perfect. Having a clean model may requires
the `accounts-sandstorm` to expose a hook to modify the user document
just after the `services.sandstorm` credentials are updated.
Fixes#460
As discussed in #370 and announced in the official Eslint-meteor
plugin repository (https://github.com/dferber90/eslint-plugin-meteor),
it is recommended to not use this plugin anymore has the author has it
is currently broken and the author has abandoned it.
We now use the `preferredHandle` exposed by Sandstorm as source for
the username and append a number if the username is already taken
since we need to ensure username uniqueness (eg 'max', 'max1', 'max2')
Fixes#352
Add rules for eslint-plugin-meteor.
Use local version of eslint and eslint-plugin-meteor, instead of
relying on global versions. Ensures consistent versions of eslint and
eslint-plugin-meteor for all developers.
This version includes a more complete selection of ES2015 polyfills
that I started used across the code base, for instance by replacing
`$.trim(str)` by `str.trim()`.
This commit uses a new package that I need to document. It tries to
solve the long-standing debate in the Meteor community about
allow/deny rules versus methods (RPC).
This approach gives us both the centralized security rules of
allow/deny and the white-list of allowed mutations similarly to Meteor
methods. The idea to have static mutation descriptions is also
inspired by Facebook's Relay/GraphQL.
This will allow the development of a REST API using the high-level
methods instead of the MongoDB queries to do the mapping between the
HTTP requests and our collections.
We now update the internal state of the application every time a user
connects to the application, which means that if the sandstorm sharing
graph has changed since the last time we saw a user, his permissions
will be updated accordingly.
Replace the old (and broken) jshint + jscsrc by eslint and configure
it to support some of the ES6 features.
The command `eslint` currently has one error which is a bug that was
discovered by its static analysis and should be fixed (usage of a
dead object).
Motivations:
* Iron-Router foces us to use Tracker.nonreactive black magic in order
to avoid un-necessary re-renders;
* There is a community consensus (supported by some MDG members) that
the flow-router API is easier to reason about;
* The useraccounts now supports flow router (that was a blocking
element when I considered the switch ~3months ago)
On the server we use the Picker router, as encouraged by the Kadira
team (which develop both Flow and Picker routers).
In the current state of things there are some bugs related to the
missing Loading architecure. Previously onRendered callback where
always called when the data the component needed was available, now
we have to handle this ourselves, which we will in a following commit.
* Implement visibility choice on board creation;
* Rework the board header bar. Remove links to un-implemented
features;
* Implement a board star counter (visible if the board have >2 stars);
* Define a new icon (a thin cross) to close elements;
* Remove $(document).on('mouseover') event handlers that were
basically fired hundreds of times for nothing, we now define a proper
Tracker dependency to execute jquery-ui plugin initialization only
when something has changed;
* Bug fixes related to list scrolling.
Both sandstorm and LibreBoard have significantly evolved since the
last release of LibreBoard on sandstorm. This commit:
* adds some more attributes on the sandstorm manifest
* introduces support with the sandstorm sharing box
* uses a server redirection to point to the board document
* hides the top shortcut bar on sandstorm
Fixes#163.