1
1
' use strict'
2
2
3
3
angular .module ' <%= scriptAppName %>'
4
- .factory ' Auth' , ($location , $rootScope , $ http , User , $cookieStore , $q ) ->
4
+ .factory ' Auth' , ($http , User , $cookieStore , $q ) ->
5
5
currentUser = if $cookieStore .get ' token' then User .get () else {}
6
6
7
7
###
8
8
Authenticate user and save token
9
9
10
10
@param {Object} user - login info
11
- @param {Function} callback - optional
11
+ @param {Function} callback - optional, function(error)
12
12
@return {Promise}
13
13
###
14
14
login : (user , callback ) ->
15
- deferred = $q .defer ()
16
15
$http .post ' /auth/local' ,
17
16
email : user .email
18
17
password : user .password
19
18
20
- .success (data ) ->
21
- $cookieStore .put ' token' , data .token
19
+ .then (res ) ->
20
+ $cookieStore .put ' token' , res . data .token
22
21
currentUser = User .get ()
23
- deferred .resolve data
24
22
callback? ()
23
+ res .data
25
24
26
- . error (err) =>
25
+ , (err ) =>
27
26
@ logout ()
28
- deferred .reject err
29
- callback? err
30
-
31
- deferred .promise
27
+ callback? err .data
28
+ $q .reject err .data
32
29
33
30
34
31
###
35
32
Delete access token and user info
36
-
37
- @param {Function}
38
33
###
39
34
logout : ->
40
35
$cookieStore .remove ' token'
@@ -46,15 +41,15 @@ angular.module '<%= scriptAppName %>'
46
41
Create a new user
47
42
48
43
@param {Object} user - user info
49
- @param {Function} callback - optional
44
+ @param {Function} callback - optional, function(error, user)
50
45
@return {Promise}
51
46
###
52
47
createUser : (user , callback ) ->
53
48
User .save user,
54
49
(data ) ->
55
50
$cookieStore .put ' token' , data .token
56
51
currentUser = User .get ()
57
- callback? user
52
+ callback? null , user
58
53
59
54
, (err ) =>
60
55
@ logout ()
@@ -68,7 +63,7 @@ angular.module '<%= scriptAppName %>'
68
63
69
64
@param {String} oldPassword
70
65
@param {String} newPassword
71
- @param {Function} callback - optional
66
+ @param {Function} callback - optional, function(error, user)
72
67
@return {Promise}
73
68
###
74
69
changePassword : (oldPassword , newPassword , callback ) ->
@@ -79,7 +74,7 @@ angular.module '<%= scriptAppName %>'
79
74
newPassword : newPassword
80
75
81
76
, (user ) ->
82
- callback? user
77
+ callback? null , user
83
78
84
79
, (err ) ->
85
80
callback? err
@@ -88,45 +83,61 @@ angular.module '<%= scriptAppName %>'
88
83
89
84
90
85
###
91
- Gets all available info on authenticated user
86
+ Gets all available info on a user
87
+ (synchronous|asynchronous)
92
88
93
- @return {Object} user
89
+ @param {Function|*} callback - optional, funciton(user)
90
+ @return {Object|Promise}
94
91
###
95
- getCurrentUser : ->
96
- currentUser
92
+ getCurrentUser : ( callback ) ->
93
+ return currentUser if arguments . length is 0
97
94
95
+ value = if (currentUser .hasOwnProperty (" $promise" )) then currentUser .$promise else currentUser
96
+ $q .when value
98
97
99
- ###
100
- Check if a user is logged in synchronously
98
+ .then (user) ->
99
+ callback? user
100
+ user
101
101
102
- @return {Boolean}
103
- ###
104
- isLoggedIn : ->
105
- currentUser .hasOwnProperty ' role'
102
+ , ->
103
+ callback? {}
104
+ {}
106
105
107
106
108
107
###
109
- Waits for currentUser to resolve before checking if user is logged in
108
+ Check if a user is logged in
109
+ (synchronous|asynchronous)
110
+
111
+ @param {Function|*} callback - optional, function(is)
112
+ @return {Bool|Promise}
110
113
###
111
- isLoggedInAsync : (callback ) ->
112
- if currentUser .hasOwnProperty ' $promise'
113
- currentUser .$promise .then ->
114
- callback? true
115
- return
116
- .catch ->
117
- callback? false
118
- return
114
+ isLoggedIn : (callback ) ->
115
+ return currentUser .hasOwnProperty (" role" ) if arguments .length is 0
116
+
117
+ @ getCurrentUser null
118
+
119
+ .then (user) ->
120
+ is_ = user .hasOwnProperty (" role" )
121
+ callback? is_
122
+ is_
119
123
120
- else
121
- callback? currentUser .hasOwnProperty ' role'
122
124
123
125
###
124
126
Check if a user is an admin
127
+ (synchronous|asynchronous)
125
128
126
- @return {Boolean}
129
+ @param {Function|*} callback - optional, function(is)
130
+ @return {Bool|Promise}
127
131
###
128
- isAdmin : ->
129
- currentUser .role is ' admin'
132
+ isAdmin : (callback ) ->
133
+ return currentUser .role is " admin" if arguments_ .length is 0
134
+
135
+ @ getCurrentUser null
136
+
137
+ .then (user) ->
138
+ is_ = user .role is " admin"
139
+ callback? is_
140
+ is_
130
141
131
142
132
143
###
0 commit comments