You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.0 KiB
JavaScript
85 lines
2.0 KiB
JavaScript
import _Message from "./_Message.js";
|
|
import isUndefined from './util/isUndefined.js';
|
|
import isArray from './util/isArray.js';
|
|
import Home from './Home.js';
|
|
import _Cart from './_Cart.js';
|
|
import _DB from './_DB.js';
|
|
import _Navigation from './_Navigation.js';
|
|
|
|
|
|
var _User = {};
|
|
|
|
_User.guest = {tier: 'silver'};
|
|
_User.current = _User.guest;
|
|
|
|
_User.session_hash = null;
|
|
|
|
_User.isGold = function(){
|
|
return _User.current.tier === 'gold';
|
|
}
|
|
|
|
_User.isLoggedIn = function(){
|
|
return !(_User.current === _User.guest);
|
|
};
|
|
|
|
_User.isGuest = function(){
|
|
return (_User.current === _User.guest);
|
|
};
|
|
|
|
_User.isAdmin = function(){
|
|
return (_User.current.is_admin);
|
|
};
|
|
|
|
_User.attemptLogin = function(username, password){
|
|
m.request({
|
|
method: 'POST',
|
|
url: '/cgi/attemptlogin',
|
|
body: { username: username, password: password }
|
|
})
|
|
.then(function(res){
|
|
if(res.success === true){
|
|
var user = res.user;
|
|
_User.current = user;
|
|
_User.session_hash = res.session_hash;
|
|
_Message.addNotification("Welcome, "+user.firstname+"!");
|
|
|
|
if(!isArray(res.cart.lineitem_ids)){
|
|
res.cart.lineitem_ids = [];
|
|
}
|
|
res.cart.lineitem_ids.forEach(function(lineitem, index){
|
|
lineitem.item_id = _DB.integrate(lineitem.item_id).id;
|
|
res.cart.lineitem_ids[index] = _DB.integrate(lineitem).id;
|
|
});
|
|
_Cart.current = _DB.integrate(res.cart);
|
|
|
|
return _Cart.current;
|
|
}
|
|
else{
|
|
_Message.addError("Wrong Username/Password!");
|
|
//return false;
|
|
}
|
|
});
|
|
};
|
|
|
|
_User.logout = function(){
|
|
m.request({
|
|
method: 'POST',
|
|
url: '/cgi/logout',
|
|
body: { session_hash: _User.session_hash }
|
|
})
|
|
.then(function(res){
|
|
if(res.success === true){
|
|
_User.current = _User.guest;
|
|
_User.session_hash = null;
|
|
_Cart.current = null;
|
|
_Message.addNotification("Logged out!");
|
|
_Navigation.component = Home;
|
|
_Navigation.attrs = null;
|
|
}
|
|
else{
|
|
_Message.addError("Couldn't log out for some reason...");
|
|
}
|
|
});
|
|
};
|
|
|
|
export default _User; |