@@ -61,76 +61,6 @@ class AvatarManagement {
6161 } ) ; // loaded session
6262 }
6363
64- api_admin_upload_avatar ( args , callback ) {
65- // admin only: upload avatar for any user
66- var self = this ;
67- var params = Tools . mergeHashes ( args . params , args . query ) ;
68- if ( ! this . requireMaster ( args , callback ) ) return ;
69- if ( ! this . validateFiles ( args , callback ) ) return ;
70-
71- if ( ! args . files [ 'file1' ] ) {
72- return self . doError ( 'avatar' , "No file upload data found in request." , callback ) ;
73- }
74-
75- if ( ! this . requireParams ( params , {
76- username : / ^ [ \w \- \. ] + $ /
77- } , callback ) ) return ;
78-
79- this . loadSession ( args , function ( err , session , admin_user ) {
80- if ( ! session ) {
81- return self . doError ( 'session' , "Session has expired or is invalid." , callback ) ;
82- }
83- if ( ! admin_user ) {
84- return self . doError ( 'user' , "User not found: " + session . username , callback ) ;
85- }
86- if ( ! admin_user . active ) {
87- return self . doError ( 'user' , "User account is disabled: " + session . username , callback ) ;
88- }
89-
90- var privs = self . getComputedPrivileges ( admin_user ) ;
91- if ( ! privs . admin ) {
92- return self . doError ( 'user' , "User is not an administrator: " + session . username , callback ) ;
93- }
94-
95- self . loadUser ( params . username , function ( err , user ) {
96- if ( err ) {
97- return self . doError ( 'user' , "User not found: " + params . username , callback ) ;
98- }
99-
100- var temp_file = args . files [ 'file1' ] . path ;
101- var base_path = '/users/' + params . username + '/avatar' ;
102- var sizes = [ 256 , 64 ] ;
103-
104- async . eachSeries ( sizes ,
105- function ( size , callback ) {
106- self . resizeStoreImage ( temp_file , size , size , base_path + '/' + size + '.png' , callback ) ;
107- } ,
108- function ( err ) {
109- // all done with all image sizes
110- if ( err ) return self . doError ( 'avatar' , err . toString ( ) , callback ) ;
111-
112- // update user to bump mod date (for cache bust on avatar)
113- user . modified = Tools . timeNow ( true ) ;
114-
115- self . logDebug ( 6 , "Updating user" , user ) ;
116-
117- self . storage . put ( "users/" + self . usermgr . normalizeUsername ( params . username ) , user , function ( err , data ) {
118- if ( err ) {
119- return self . doError ( 'user' , "Failed to update user: " + err , callback ) ;
120- }
121-
122- self . logDebug ( 6 , "Successfully updated user" ) ;
123- self . logTransaction ( 'user_update' , user . username ,
124- self . getClientInfo ( args , { user : Tools . copyHashRemoveKeys ( user , { password : 1 , salt : 1 } ) } ) ) ;
125-
126- callback ( { code : 0 } ) ;
127- } ) ; // storage.put
128- } // done with images
129- ) ; // eachSeries
130- } ) ; // loadUser
131- } ) ; // loaded session
132- }
133-
13464 api_delete_avatar ( args , callback ) {
13565 // delete avatar for user
13666 var self = this ;
@@ -172,71 +102,6 @@ class AvatarManagement {
172102 } ) ; // loaded session
173103 }
174104
175- api_admin_delete_avatar ( args , callback ) {
176- // admin only: delete avatar for any user
177- var self = this ;
178- var params = Tools . mergeHashes ( args . params , args . query ) ;
179- if ( ! this . requireMaster ( args , callback ) ) return ;
180-
181- if ( ! this . requireParams ( params , {
182- username : / ^ [ \w \- \. ] + $ /
183- } , callback ) ) return ;
184-
185- this . loadSession ( args , function ( err , session , admin_user ) {
186- if ( ! session ) {
187- return self . doError ( 'session' , "Session has expired or is invalid." , callback ) ;
188- }
189- if ( ! admin_user ) {
190- return self . doError ( 'user' , "User not found: " + session . username , callback ) ;
191- }
192- if ( ! admin_user . active ) {
193- return self . doError ( 'user' , "User account is disabled: " + session . username , callback ) ;
194- }
195-
196- var privs = self . getComputedPrivileges ( admin_user ) ;
197- if ( ! privs . admin ) {
198- return self . doError ( 'user' , "User is not an administrator: " + session . username , callback ) ;
199- }
200-
201- self . loadUser ( params . username , function ( err , user ) {
202- if ( err ) {
203- return self . doError ( 'user' , "User not found: " + params . username , callback ) ;
204- }
205-
206- var base_path = '/users/' + user . username + '/avatar' ;
207- var sizes = [ 256 , 64 ] ;
208-
209- async . eachSeries ( sizes ,
210- function ( size , callback ) {
211- self . storage . delete ( base_path + '/' + size + '.png' , callback ) ;
212- } ,
213- function ( err ) {
214- // all done with all image sizes
215- if ( err ) return self . doError ( 'avatar' , err . toString ( ) , callback ) ;
216-
217- // update user to bump mod date (for cache bust on avatar)
218- user . modified = Tools . timeNow ( true ) ;
219-
220- self . logDebug ( 6 , "Updating user" , user ) ;
221-
222- self . storage . put ( "users/" + self . usermgr . normalizeUsername ( user . username ) , user , function ( err , data ) {
223- if ( err ) {
224- return self . doError ( 'user' , "Failed to update user: " + err , callback ) ;
225- }
226-
227- self . logDebug ( 6 , "Successfully updated user" ) ;
228- self . logTransaction ( 'user_update' , user . username ,
229- self . getClientInfo ( args , { user : Tools . copyHashRemoveKeys ( user , { password : 1 , salt : 1 } ) } ) ) ;
230-
231- callback ( { code : 0 } ) ;
232- } ) ; // storage.put
233- } // done with images
234- ) ; // eachSeries
235-
236- } ) ; // loadUser
237- } ) ; // loaded session
238- }
239-
240105 api_avatar ( args , callback ) {
241106 // view avatar for specified user on URI: /api/app/avatar/USERNAME.png
242107 var self = this ;
0 commit comments