mirror of
https://github.com/status-im/burnchart.git
synced 2025-02-10 17:36:24 +00:00
firebase auth
This commit is contained in:
parent
5047977f47
commit
3959efca18
@ -7,6 +7,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"deep-diff": "^0.3.3",
|
"deep-diff": "^0.3.3",
|
||||||
|
"firebase": "^2.3.2",
|
||||||
"lesshat": "^3.0.2",
|
"lesshat": "^3.0.2",
|
||||||
"lodash": "^3.10.1",
|
"lodash": "^3.10.1",
|
||||||
"marked": "^0.3.5",
|
"marked": "^0.3.5",
|
||||||
|
@ -27,7 +27,7 @@ export default React.createClass({
|
|||||||
|
|
||||||
// Sign-in/out.
|
// Sign-in/out.
|
||||||
let user;
|
let user;
|
||||||
if (props.user.uid) {
|
if (props.user && 'uid' in props.user) {
|
||||||
user = (
|
user = (
|
||||||
<div className="right">
|
<div className="right">
|
||||||
<a onClick={this._onSignOut}>
|
<a onClick={this._onSignOut}>
|
||||||
|
33
src/js/models/config.js
Normal file
33
src/js/models/config.js
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
export default {
|
||||||
|
// Firebase app name.
|
||||||
|
"firebase": "burnchart",
|
||||||
|
// Data source provider.
|
||||||
|
"provider": "github",
|
||||||
|
// Fields to keep from GH responses.
|
||||||
|
"fields": {
|
||||||
|
"milestone": [
|
||||||
|
"closed_issues",
|
||||||
|
"created_at",
|
||||||
|
"description",
|
||||||
|
"due_on",
|
||||||
|
"number",
|
||||||
|
"open_issues",
|
||||||
|
"title",
|
||||||
|
"updated_at"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
// Chart configuration.
|
||||||
|
"chart": {
|
||||||
|
// Days we are not working. Mon = 1
|
||||||
|
"off_days": [ ],
|
||||||
|
// How does a size label look like?
|
||||||
|
"size_label": /^size (\d+)$/,
|
||||||
|
// Process all issues as one size (ONE_SIZE) or use labels (LABELS).
|
||||||
|
"points": 'ONE_SIZE'
|
||||||
|
},
|
||||||
|
// Request pertaining.
|
||||||
|
"request": {
|
||||||
|
// Default timeout of 5s.
|
||||||
|
"timeout": 5e3
|
||||||
|
}
|
||||||
|
};
|
@ -1,9 +1,15 @@
|
|||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
|
import Firebase from 'firebase';
|
||||||
|
|
||||||
import Store from '../core/Store.js';
|
import Store from '../core/Store.js';
|
||||||
|
|
||||||
import actions from '../actions/appActions.js';
|
import actions from '../actions/appActions.js';
|
||||||
|
|
||||||
|
import config from '../models/config.js';
|
||||||
|
|
||||||
|
// Setup a new client.
|
||||||
|
let client;
|
||||||
|
|
||||||
class AppStore extends Store {
|
class AppStore extends Store {
|
||||||
|
|
||||||
// Initial payload.
|
// Initial payload.
|
||||||
@ -15,7 +21,7 @@ class AppStore extends Store {
|
|||||||
user: {}
|
user: {}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Listen to all app actions
|
// Listen to all app actions.
|
||||||
actions.onAny((obj, event) => {
|
actions.onAny((obj, event) => {
|
||||||
let fn = ('on.' + event).replace(/[.]+(\w|$)/g, (m, p) => {
|
let fn = ('on.' + event).replace(/[.]+(\w|$)/g, (m, p) => {
|
||||||
return p.toUpperCase();
|
return p.toUpperCase();
|
||||||
@ -23,14 +29,38 @@ class AppStore extends Store {
|
|||||||
|
|
||||||
(fn in this) && this[fn](obj);
|
(fn in this) && this[fn](obj);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
client = new Firebase("https://" + config.firebase + ".firebaseio.com");
|
||||||
|
|
||||||
|
// When user is already authenticated.
|
||||||
|
client.onAuth((data={}) => actions.emit('firebase.auth', data));
|
||||||
}
|
}
|
||||||
|
|
||||||
onUserSignin() {
|
onUserSignin() {
|
||||||
console.log('in');
|
client.authWithOAuthPopup("github", function(err, data) {
|
||||||
|
if (!err) return actions.emit('firebase.auth', data);
|
||||||
|
|
||||||
|
actions.emit('notify', {
|
||||||
|
'text': err.toString(),
|
||||||
|
'type': 'alert',
|
||||||
|
'system': true
|
||||||
|
});
|
||||||
|
}, {
|
||||||
|
'rememberMe': true,
|
||||||
|
// See https://developer.github.com/v3/oauth/#scopes
|
||||||
|
'scope': 'repo'
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
onUserSignOut() {
|
// Sign-out a user.
|
||||||
console.log('out');
|
onUserSignout() {
|
||||||
|
this.set('user', {});
|
||||||
|
client.unauth();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Called by Firebase.
|
||||||
|
onFirebaseAuth(data) {
|
||||||
|
this.set('user', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user