@@ -25,15 +25,25 @@ module.exports = {
2525 throw new Error ( authenticationError ) ;
2626 }
2727 try {
28- if ( req . currentUser . isAdmin ) {
29- const users = await User . find (
30- { isRemoved : false } ,
31- "name email info isFirstAdmin isAdmin isModerator isBlocked isRemoved"
32- ) ;
33- return users ;
34- } else {
35- throw new Error ( adminAccessError ) ;
28+ const users = await User . find (
29+ {
30+ isRemoved : false ,
31+ } ,
32+ "name email info isBlocked isAdmin isModerator createdAt"
33+ ) . sort ( [ [ "createdAt" , - 1 ] ] ) ;
34+ let blockedUsers = [ ] ;
35+ let normalUsers = [ ] ;
36+ for ( const user of users ) {
37+ if ( user . isBlocked === true ) {
38+ blockedUsers . push ( user ) ;
39+ } else if ( user . isAdmin == false && user . isModerator == false ) {
40+ normalUsers . push ( user ) ;
41+ }
3642 }
43+ return {
44+ users : normalUsers ,
45+ blockedUsers,
46+ } ;
3747 } catch ( err ) {
3848 console . log ( err ) ;
3949 throw err ;
@@ -45,20 +55,18 @@ module.exports = {
4555 throw new Error ( emailPasswordError ) ;
4656 }
4757 try {
58+ let user ;
4859 let existingUser = await User . findOne ( {
4960 email : args . userInput . email ,
5061 } ) ;
51- let user , organization ;
52- const users = await User . find ( { } ) . lean ( ) ;
53- const organizations = await Organization . find ( { } ) . lean ( ) ;
62+ const organization = await Organization . findOne ( { } ) ;
5463 if ( existingUser ) {
5564 if ( existingUser . isBlocked ) {
5665 throw new Error ( userBlockedError ) ;
5766 }
5867 if ( existingUser . isRemoved ) {
59- organization = await Organization . findOne ( ) ;
6068 existingUser . name = args . userInput . name ;
61- existingUser . password = args . userInput . password ,
69+ existingUser . password = args . userInput . password ;
6270 existingUser . phone = args . userInput . phone ;
6371 existingUser . info = args . userInput . info ;
6472 existingUser . info . about . designation = "" ;
@@ -73,11 +81,11 @@ module.exports = {
7381 ) ;
7482 }
7583 } else {
84+ const users = await User . find ( { } ) . lean ( ) ;
7685 if ( users . length === 0 ) {
77- if ( organizations . length === 0 ) {
86+ if ( ! organization ) {
7887 throw new Error ( noOrganizationError ) ;
7988 } else {
80- organization = await Organization . findOne ( ) ;
8189 user = new User ( {
8290 name : args . userInput . name ,
8391 email : args . userInput . email ,
@@ -91,7 +99,6 @@ module.exports = {
9199 organization . adminIds . push ( user ) ;
92100 }
93101 } else {
94- organization = await Organization . findOne ( ) ;
95102 user = new User ( {
96103 name : args . userInput . name ,
97104 email : args . userInput . email ,
@@ -100,7 +107,7 @@ module.exports = {
100107 info : args . userInput . info ,
101108 } ) ;
102109 }
103- const saveUser = await user . save ( ) ;
110+ await user . save ( ) ;
104111 }
105112 organization . totalUsers += 1 ;
106113 await organization . save ( ) ;
@@ -124,6 +131,12 @@ module.exports = {
124131 throw new Error ( noAuthorizationError ) ;
125132 }
126133 let user = await User . findOne ( { _id : req . currentUser . id } ) ;
134+ if ( ! user || user . isRemoved ) {
135+ throw new Error ( noUserError ) ;
136+ }
137+ if ( user . isBlocked ) {
138+ throw new Error ( userBlockedError ) ;
139+ }
127140 user . name = args . userInput . name ;
128141 user . phone = args . userInput . phone ;
129142 user . info = args . userInput . info ;
@@ -151,18 +164,15 @@ module.exports = {
151164 } else if ( args . userFindInput . _id ) {
152165 user = await User . findById ( args . userFindInput . _id ) ;
153166 }
154- if ( ! user ) {
167+ if ( ! user || user . isRemoved ) {
155168 throw new Error ( noUserError ) ;
156169 }
157170 if ( user . isFirstAdmin ) {
158171 throw new Error ( firstAdminBlockError ) ;
159172 }
160- if ( user . isRemoved ) {
161- throw new Error ( noUserError ) ;
162- }
163173 user . isBlocked = true ;
164174 await user . save ( ) ;
165- const organization = await Organization . findOne ( ) ;
175+ const organization = await Organization . findOne ( { } ) ;
166176 organization . blockedUsers . push ( user ) ;
167177 organization . totalUsers -= 1 ;
168178 await organization . save ( ) ;
@@ -191,15 +201,12 @@ module.exports = {
191201 } else if ( args . userFindInput . _id ) {
192202 user = await User . findById ( args . userFindInput . _id ) ;
193203 }
194- if ( ! user ) {
204+ if ( ! user || user . isRemoved ) {
195205 throw new Error ( noUserError ) ;
196206 }
197207 if ( user . isFirstAdmin ) {
198208 throw new Error ( noAuthorizationError ) ;
199209 }
200- if ( user . isRemoved ) {
201- throw new Error ( noUserError ) ;
202- }
203210 user . isBlocked = false ;
204211 await user . save ( ) ;
205212 const organization = await Organization . findOne ( ) ;
@@ -227,7 +234,7 @@ module.exports = {
227234 const organization = await Organization . findOne ( ) ;
228235 if ( ! args . userFindInput . email && ! args . userFindInput . _id ) {
229236 user = await User . findById ( req . currentUser . id ) ;
230- if ( ! user ) {
237+ if ( ! user || user . isRemoved ) {
231238 throw new Error ( noUserError ) ;
232239 }
233240 if ( user . isFirstAdmin ) {
@@ -255,7 +262,7 @@ module.exports = {
255262 } else if ( args . userFindInput . _id ) {
256263 user = await User . findById ( args . userFindInput . _id ) ;
257264 }
258- if ( ! user ) {
265+ if ( ! user || user . isRemoved ) {
259266 throw new Error ( noUserError ) ;
260267 }
261268 if ( user . isFirstAdmin ) {
0 commit comments