enabled: true,
requireBase: false
})
- $urlRouterProvider.otherwise('/login')
+ //$urlRouterProvider.otherwise('/login')
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'
+
+ // Debug
+ //$urlRouterProvider.otherwise('/board/504d41f91d2f81f02561b93a0e9ccde4')
+
})
-.run(function($rootScope, $state, Restangular) {
- $rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams) {
+.run(function($rootScope, $state, Restangular, user) {
+ $rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams, user) {
$rootScope.previous = fromState.name
})
return false
})
+
+ // Debug
+ user.setEmail('fumifumi@yasunaga-lab.bio.kyutech.ac.jp')
+ user.setID('504d41f91d2f81f02561b93a0e9ccde4')
})
$state.go('login')
}
- $scope.commandDirectives = new Array()
+
+ $scope.commandDirectives = []
+
+ // Add new my-command directive
$scope.openCommandModal = function() {
var modalInstance = $modal.open({
templateUrl: '/client/app/components/commandModal/commandModal.html',
})()
})
}
+
+ // Remove my-command directive
$scope.removeCommandDirective= function(index) {
$scope.commandDirectives.splice(index, 1)
}
+
+ //
$scope.save = function() {
$modal.open({
templateUrl: '/client/app/components/saveFileModal/saveFileModal.html',
$scope.commandDirectives[index].isCompleted = true
})
+ // restore executeion log
var note = $state.params.noteID
- if(note !== undefined) {
+ if(!note) {
$scope.noteName = note
var baseNoteInfo = Restangular.all('/api/noteInfo/'+note)
baseNoteInfo.getList().then(function(commands) {
.controller('LoginController', function ($scope, $modal, Restangular, $state, user, $timeout, $rootScope) {
var baseLogin = Restangular.all('/auth/login')
- // show or not alert
- if($rootScope.previous === 'signup')
- $scope.alert = true
+ // show or not 'signup success alert'
+ if($rootScope.isSignupped) {
+ $scope.alert = true
+ $scope.isSignupped = false
+ }
+
$scope.$watch('alert')
// hide alert
$scope.submit = function() {
var params = {
- username: $scope.username,
- password: $scope.password
+ email: $scope.email,
}
+ params.password = $scope.password || 'secret'
+
console.log(params)
baseLogin.post(JSON.stringify(params)).then(function(userID) {
+ user.email($scope.email)
user.setID(userID)
$state.go('board', { userID: userID })
})
<form class="form-signin" method="post" ng-submit="submit()" >
<h2 class="text-center" class="form-signin-heading">Login</h2>
<label class="sr-only">Username</label>
- <input type="text" name="username" class="form-control" ng-model="username" placeholder="Username" required autofocus>
+ <input type="text" class="form-control" ng-model="email" placeholder="email" required autofocus>
<label class="sr-only">Password</label>
- <input type="password" name="password" class="form-control" ng-model="password" placeholder="Password" required>
+ <input type="password" name="password" class="form-control" ng-show="superuser" ng-disabled="!superuser" ng-model="password" placeholder="Password" required>
+ <div class="checkbox">
+ <label>
+ <input type="checkbox"
+ ng-model="superuser">login as superuser
+ </label>
+ </div>
<button class="btn btn-lg btn-primary btn-block" type="submit">Signin</button>
<div class="pull-right">
<p>or
angular.module('zephyrApp')
.controller('SaveFileModalController', function($scope, $modalInstance, Restangular) {
var baseNoteSaving = Restangular.all('/api/noteCreation')
+
$scope.save = function() {
var note = {
name: $scope.noteName
$modalInstance.close()
})
}
+
$scope.close = function() {
$modalInstance.close()
}
'use strict';
angular.module('zephyrApp')
-.controller('SignupController', function ($scope, $modal, Restangular, $state, user, $timeout) {
+.controller('SignupController', function ($scope, $modal, Restangular, $state, user, $timeout, $rootScope) {
var baseLogin = Restangular.all('/auth/signup')
$scope.$watch('alert')
$scope.alert = true
$scope.alertmsg = "At least one select your role"
timeout()
+ } else {
+ var params = {
+ email: $scope.email,
+ roles: []
+ }
+ if($scope.superuser)
+ params.password = $scope.password
+ else
+ params.password = "secret"
+
+ if($scope.role.superuser)
+ params.roles.push('superuser')
+ if($scope.role.expert)
+ params.roles.push('expert')
+ if($scope.role.amature)
+ params.roles.push('amature')
+
+ baseLogin.post(JSON.stringify(params)).then(function(status) {
+ $rootScope.isSignupped = true
+ $state.go('login')
+ })
}
- var params = {
- email: $scope.email
- }
- if($scope.superuser)
- params.password = $scope.password
- else
- params.password = "secret"
-
- baseLogin.post(JSON.stringify(params)).then(function(status) {
- $state.go('login')
- console.log(status)
- })
}
// hide alert
angular.module('zephyrApp')
.service('user', function() {
- var userID
+ var userID,
+ email
return {
setID: function(id) {
userID = id
},
getID: function() {
return userID
+ },
+ setEmail: function(addr) {
+ email: addr
+ },
+ getEmail: function() {
+ return email
}
}
})
process.env.NODE_ENV = 'production'
})
+gulp.task('dbdrop', function() {
+ process.env.DB_ZEPHYR = 'drop'
+})
+
gulp.task('build', ['angular-concat', 'js-vendor-concat', 'underscore', 'js-app', 'js-source-concat', 'css-concat', 'cache'], function() {
})
gulp.task('deploy', function(callback) {
runSequence('build', 'set-production', 'serve', callback)
})
+
+gulp.task('test', function(callback) {
+ runSequence('dbdrop', 'default', callback)
+})
+
var express = require('express'),
config = require('./config'),
app = express(),
- server = require('http').createServer(app),
- jb = require('./jb')
+ server = require('http').createServer(app)
require('./express')(app);
require('./routes')(app);
path = require('path'),
passport = require('passport'),
LocalStrategy = require('passport-local').Strategy,
- crypto = require('crypto')
+ crypto = require('crypto'),
+ jb = require('../../jb')
-var users = [
- { id: 1, username: 'bob', password: 'secret', email: 'bob@example.com' }
- , { id: 2, username: 'joe', password: 'birthday', email: 'joe@example.com' }
-];
+ /*
+ var users = [
+ { id: 1, username: 'bob', password: 'secret', email: 'bob@example.com' }
+ , { id: 2, username: 'joe', password: 'birthday', email: 'joe@example.com' }
+ ];
-function findById(id, fn) {
- var idx = id - 1;
- if (users[idx]) {
- fn(null, users[idx]);
- } else {
- fn(new Error('User ' + id + ' does not exist'));
- }
-}
+ function findById(id, fn) {
+ var idx = id - 1;
+ if (users[idx]) {
+ fn(null, users[idx]);
+ } else {
+ fn(new Error('User ' + id + ' does not exist'));
+ }
+ }
-function findByUsername(username, fn) {
- for (var i = 0, len = users.length; i < len; i++) {
- var user = users[i];
- if (user.username === username) {
- return fn(null, user);
- }
- }
- return fn(null, null);
-}
+ function findByUsername(username, fn) {
+ for (var i = 0, len = users.length; i < len; i++) {
+ var user = users[i];
+ if (user.username === username) {
+ return fn(null, user);
+ }
+ }
+ return fn(null, null);
+ }
-passport.serializeUser(function(user, done) {
- done(null, user.id)
-})
-
-passport.deserializeUser(function(id, done) {
- findById(id, function(err, user) {
- done(null, user.id)
- })
-})
+ passport.serializeUser(function(user, done) {
+ done(null, user.id)
+ })
-passport.use(new LocalStrategy(
- function(username, password, done) {
- process.nextTick(function() {
- findByUsername(username, function(err, user) {
- if(err){ return done(err) }
- if(!user) { return done(null, false, { message: 'Unknown user ' + username })}
- if(user.password != password) { return done(null, false, { message: 'Invalid password' }) }
- return done(null, user)
- })
- })
- }
-))
+ passport.deserializeUser(function(id, done) {
+ findById(id, function(err, user) {
+ done(null, user.id)
+ })
+ })
+ passport.use(new LocalStrategy(
+ function(username, password, done) {
+ process.nextTick(function() {
+ findByUsername(username, function(err, user) {
+ if(err){ return done(err) }
+ if(!user) { return done(null, false, { message: 'Unknown user ' + username })}
+ if(user.password != password) { return done(null, false, { message: 'Invalid password' }) }
+ return done(null, user)
+ })
+ })
+ }
+ ))
+ */
-router.post('/', passport.authenticate('local'),
- function(req, res) {
- var username = req.body.username
- var md5 = crypto.createHash('md5')
- md5.update(username, 'utf8')
- res.send(md5.digest('hex'));
- })
+router.post('/', function(req, res) {
+ var email= req.body.email
+ var password = req.body.password
+ jb.find('user',
+ { email: email,
+ password: password},
+ function(err, document) {
+ if(document.length === 0) {
+ res.sendStatus(401)
+ } else {
+ var md5 = crypto.createHash('md5')
+ md5.update(email, 'utf8')
+ res.send(md5.digest('hex'));
+ }
+ })
+})
module.exports = router
router.post('/', function(req, res) {
- var email = req.params.email
- var password = req.params.password
+ var email = req.body.email
+ var password = req.body.password
jb.find('user',
- { email: req.params.email },
- function(err, document) {
+ { email: email },
+ function(err, document) {
if(document.length === 0) {
var newuser = {
email: email,
} else {
res.sendStatus(409)
}
- })
+ })
})
module.exports = router
'use strict';
-var express = require('express'),
- path = require('path'),
- config = require('./config'),
- bodyParser = require('body-parser'),
- flash = require('connect-flash'),
- session = require('express-session'),
+var express = require('express'),
+ path = require('path'),
+ config = require('./config'),
+ bodyParser = require('body-parser'),
+ flash = require('connect-flash'),
+ session = require('express-session'),
cookieParser = require('cookie-parser'),
- passport = require('passport')
+ passport = require('passport')
module.exports = function(app) {
app.set('views', config.root+ '/server/views')
if(app.get('env') === 'development') {
app.use('/client/', express.static('./client/'))
app.use(express.static(path.join(config.root, 'client')))
+
} else if(app.get('env') === 'production') {
app.use('/dist/', express.static('./dist/'))
app.use(express.static(path.join(config.root, 'dist')))
'use strict'
-var EJDB = require('ejdb'),
+var express = require('express'),
+ app = express(),
+ EJDB = require('ejdb'),
jb = EJDB.open("db/user.db")
+if(process.env.DB_ZEPHYR === 'drop') {
+ jb.dropCollection('user',
+ { prune: true },
+ function() {})
+}
+
module.exports = jb