mirror of
https://git.rwth-aachen.de/acs/public/villas/web/
synced 2025-03-09 00:00:01 +01:00
Fix user login/logout
Add logout route as buffer between logged-in state and login form Fix setting current user in service Fix message on invalid credentials in login form Don't save the user password
This commit is contained in:
parent
db993e2d2f
commit
6b8223df43
10 changed files with 35 additions and 16 deletions
|
@ -4,7 +4,6 @@ import { hasMany } from 'ember-data/relationships';
|
|||
|
||||
export default Model.extend({
|
||||
username: attr('string'),
|
||||
password: attr('string'),
|
||||
adminLevel: attr('number'),
|
||||
projects: hasMany('project', { async: true }),
|
||||
mail: attr('string')
|
||||
|
|
|
@ -28,6 +28,7 @@ Router.map(function() {
|
|||
});
|
||||
|
||||
this.route('404', { path: '/*path' });
|
||||
this.route('logout');
|
||||
});
|
||||
|
||||
export default Router;
|
||||
|
|
|
@ -13,16 +13,13 @@ export default Ember.Route.extend(ApplicationRouteMixin, {
|
|||
sessionAuthenticated() {
|
||||
this._loadCurrentUser().then(() => {
|
||||
this.transitionTo('/');
|
||||
}).catch(() => this.get('session').invalidate());
|
||||
}).catch(function(/* reason */) {
|
||||
//console.log(reason);
|
||||
this.get('session').invalidate();
|
||||
});
|
||||
},
|
||||
|
||||
_loadCurrentUser() {
|
||||
return this.get('sessionUser').loadCurrentUser();
|
||||
},
|
||||
|
||||
actions: {
|
||||
invalidateSession() {
|
||||
this.get('session').invalidate();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
8
app/routes/logout.js
Normal file
8
app/routes/logout.js
Normal file
|
@ -0,0 +1,8 @@
|
|||
import Ember from 'ember';
|
||||
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
|
||||
|
||||
export default Ember.Route.extend(AuthenticatedRouteMixin, {
|
||||
beforeModel() {
|
||||
this.get('session').invalidate();
|
||||
}
|
||||
});
|
|
@ -10,13 +10,18 @@ export default Ember.Service.extend({
|
|||
store: service(),
|
||||
|
||||
loadCurrentUser() {
|
||||
var _this = this;
|
||||
|
||||
return new RSVP.Promise((resolve, reject) => {
|
||||
const token = this.get('session.data.authenticated.token');
|
||||
if (!Ember.isEmpty(token)) {
|
||||
return this.get('store').findRecord('user', 'me').then((user) => {
|
||||
this.set('user', user);
|
||||
return this.get('store').findRecord('user', 'me').then(function(user) {
|
||||
_this.set('user', user);
|
||||
resolve();
|
||||
}, reject);
|
||||
}, function() {
|
||||
_this.get('session').invalidate();
|
||||
reject();
|
||||
});
|
||||
} else {
|
||||
resolve();
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<li>{{#link-to 'index'}}Home{{/link-to}}</li>
|
||||
<li>{{#link-to 'projects'}}Projects{{/link-to}}</li>
|
||||
<li>{{#link-to 'user.edit'}}Preferences{{/link-to}}</li>
|
||||
<li><a href="" {{action 'invalidateSession'}}>Logout</a></li>
|
||||
<li>{{#link-to 'logout'}}Logout{{/link-to}}</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<button type="submit">Login</button>
|
||||
|
||||
{{#if errorMessage}}
|
||||
<p>{{errorMessage.message}}</p>
|
||||
<p>{{errorMessage}}</p>
|
||||
{{/if}}
|
||||
</form>
|
||||
</section>
|
||||
|
|
1
app/templates/logout.hbs
Normal file
1
app/templates/logout.hbs
Normal file
|
@ -0,0 +1 @@
|
|||
{{outlet}}
|
11
tests/unit/routes/logout-test.js
Normal file
11
tests/unit/routes/logout-test.js
Normal file
|
@ -0,0 +1,11 @@
|
|||
import { moduleFor, test } from 'ember-qunit';
|
||||
|
||||
moduleFor('route:logout', 'Unit | Route | logout', {
|
||||
// Specify the other units that are required for this test.
|
||||
// needs: ['controller:foo']
|
||||
});
|
||||
|
||||
test('it exists', function(assert) {
|
||||
let route = this.subject();
|
||||
assert.ok(route);
|
||||
});
|
3
todo.md
3
todo.md
|
@ -1,8 +1,5 @@
|
|||
# To-Do
|
||||
- Logout route
|
||||
- Change password
|
||||
- Create/register user
|
||||
- User management
|
||||
- Rename preferences into account
|
||||
- ! Don't save user password
|
||||
- ! Fix user logged-in on invalidate account (after account was deleted)
|
||||
|
|
Loading…
Add table
Reference in a new issue