@@ -26,6 +26,7 @@ or as follows, to use a specific set of permissions.
26
26
###
27
27
fs = require ' fs'
28
28
loadJSON = require (' load-json-file' ).sync
29
+ loadJSONPromise = require (' load-json-file' )
29
30
moment = require ' moment'
30
31
moment .updateLocale (' zh-cn' , {
31
32
relativeTime : {
@@ -57,16 +58,19 @@ add_log = (message) ->
57
58
text = mt .format (' YYYY-MM-DD HH:mm:ss' ) + " --> " + message + " \n "
58
59
res = false
59
60
try
60
- fs .appendFileSync (" ./logs/" + mt .format (' YYYY-MM-DD' )+ " .log" , text)
61
+ await util . promisfy ( fs .appendFile ) (" ./logs/" + mt .format (' YYYY-MM-DD' )+ " .log" , text)
61
62
res = true
62
63
catch
63
64
res = false
64
- return
65
+ return res
65
66
66
67
67
68
default_data = loadJSON (' ./data/default_data.json' )
68
69
setting_save = (settings ) ->
69
- fs .writeFileSync (settings .file , JSON .stringify (settings, null , 2 ))
70
+ try
71
+ await util .promisfy (fs .writeFile )(settings .file , JSON .stringify (settings, null , 2 ))
72
+ catch e
73
+ add_log (" save fail" );
70
74
return
71
75
72
76
default_data = loadJSON (' ./data/default_data.json' )
@@ -78,16 +82,15 @@ catch
78
82
setting_save (users)
79
83
80
84
save = () ->
81
- setting_save (users)
82
- return
85
+ return await setting_save (users)
83
86
84
87
reload = () ->
85
88
user_backup = users
86
89
try
87
- users = loadJSON (' ./config/admin_user.json' )
90
+ users = await loadJSONPromise (' ./config/admin_user.json' )
88
91
catch
89
92
users = user_backup
90
- add_log (" Invalid user data JSON" )
93
+ await add_log (" Invalid user data JSON" )
91
94
return
92
95
93
96
check_permission = (user , permission_required ) ->
@@ -96,53 +99,53 @@ check_permission = (user, permission_required) ->
96
99
if typeof (permission) != ' object'
97
100
permission = users .permission_examples [_permission]
98
101
if ! permission
99
- add_log (" Permision not set:" + _permission)
102
+ await add_log (" Permision not set:" + _permission)
100
103
return false
101
104
return permission[permission_required]
102
105
103
106
@ auth = (name , pass , permission_required , action = ' unknown' , no_log ) ->
104
- reload ()
107
+ await reload ()
105
108
user = users .users [name]
106
109
if ! user
107
- add_log (" Unknown user login. User: " + name+ " , Permission needed: " + permission_required+ " , Action: " + action)
110
+ await add_log (" Unknown user login. User: " + name+ " , Permission needed: " + permission_required+ " , Action: " + action)
108
111
return false
109
112
if user .password != pass
110
- add_log (" Unauthorized user login. User: " + name+ " , Permission needed: " + permission_required+ " , Action: " + action)
113
+ await add_log (" Unauthorized user login. User: " + name+ " , Permission needed: " + permission_required+ " , Action: " + action)
111
114
return false
112
115
if ! user .enabled
113
- add_log (" Disabled user login. User: " + name+ " , Permission needed: " + permission_required+ " , Action: " + action)
116
+ await add_log (" Disabled user login. User: " + name+ " , Permission needed: " + permission_required+ " , Action: " + action)
114
117
return false
115
- if ! check_permission (user, permission_required)
116
- add_log (" Permission denied. User: " + name+ " , Permission needed: " + permission_required+ " , Action: " + action)
118
+ if ! await check_permission (user, permission_required)
119
+ await add_log (" Permission denied. User: " + name+ " , Permission needed: " + permission_required+ " , Action: " + action)
117
120
return false
118
121
if ! no_log
119
- add_log (" Operation success. User: " + name+ " , Permission needed: " + permission_required+ " , Action: " + action)
122
+ await add_log (" Operation success. User: " + name+ " , Permission needed: " + permission_required+ " , Action: " + action)
120
123
return true
121
124
122
125
@ add_user = (name , pass , enabled , permissions ) ->
123
- reload ()
126
+ await reload ()
124
127
if users .users [name]
125
128
return false
126
129
users .users [name] = {
127
130
" password" : pass,
128
131
" enabled" : enabled,
129
132
" permissions" : permissions
130
133
}
131
- save ()
134
+ await save ()
132
135
return true
133
136
134
137
@ delete_user = (name ) ->
135
- reload ()
138
+ await reload ()
136
139
if ! users .users [name]
137
140
return false
138
141
delete users .users [name]
139
- save ()
140
- return true
142
+ await save ()
143
+ return
141
144
142
145
@ update_user = (name , key , value ) ->
143
- reload ()
146
+ await reload ()
144
147
if ! users .users [name]
145
148
return false
146
149
users .users [name][key] = value
147
- save ()
148
- return true
150
+ await save ()
151
+ return
0 commit comments