blob: d8ddd0dfd3b6ea10c0d1225bd22f19f3a34b0040 [file] [log] [blame]
avm9996304def3e2016-11-27 22:53:05 +01001/**
2 * Create a user.
3 * @param {Object} user
4 * properties: id, name, accessToken, expires, accessTokenSecret, albumId
5 */
6var User = function(user) {
7 for (var prop in user) {
8 this[prop] = user[prop];
9 }
10};
11
12var Account = {
13
14 getUsers: function(siteId) {
15 var users = localStorage.getItem(siteId + '_userInfo');
16 if (users) {
17 users = JSON.parse(users);
18 for (var id in users) {
19 // Remove expired user.
20 if (Account.isExpires(users[id])) {
21 delete users[id];
22 }
23 }
24 localStorage.setItem(siteId + '_userInfo', JSON.stringify(users));
25 return users;
26 }
27 return {};
28 },
29
30 getUser: function(siteId, userId) {
31 var users = Account.getUsers(siteId);
32 var user = users[userId];
33 if (user && Account.isExpires(user)) {
34 Account.removeUser(siteId, userId);
35 return null;
36 } else {
37 return user;
38 }
39 },
40
41 addUser: function(siteId, user) {
42 var users = Account.getUsers(siteId);
43 var userId = user.id;
44 if (!users[userId]) {
45 users[userId] = user;
46 users = JSON.stringify(users);
47 localStorage.setItem(siteId + '_userInfo', users);
48 }
49 },
50
51 updateUser: function(siteId, user) {
52 var users = Account.getUsers(siteId);
53 var userId = user.id;
54 if (users && users[userId]) {
55 users[userId] = user;
56 users = JSON.stringify(users);
57 localStorage.setItem(siteId + '_userInfo', users);
58 }
59 },
60
61 removeUser: function(siteId, userId) {
62 var users = Account.getUsers(siteId);
63 delete users[userId];
64 users = JSON.stringify(users);
65 localStorage.setItem(siteId + '_userInfo', users);
66 },
67
68 isExpires: function(user) {
69 var expires = user.expires;
70 if (expires) {
71 return new Date().getTime() >= expires;
72 }
73 return false;
74 }
75};