@@ -28,87 +28,24 @@ module.exports = function (options) {
28
28
seneca . add ( { role : plugin , cmd : 'load_dojo_admins_for_user' } , cmd_load_dojo_admins_for_user ) ;
29
29
seneca . add ( { role : plugin , cmd : 'record_login' } , cmd_record_login ) ;
30
30
seneca . add ( { role : 'user' , cmd : 'login' } , cmd_login ) ;
31
+ seneca . add ( { role : plugin , cmd : 'load_prev_founder' } , cmd_load_prev_founder ) ;
31
32
seneca . add ( { role : plugin , cmd : 'kpi_number_of_youths_registered' } , cmd_kpi_number_of_youths_registered ) ;
32
33
seneca . add ( { role : plugin , cmd : 'kpi_number_of_champions_and_mentors_registered' } , cmd_kpi_number_of_champions_and_mentors_registered ) ;
33
34
seneca . add ( { role : plugin , cmd : 'kpi_number_of_youth_females_registered' } , cmd_kpi_number_of_youth_females_registered ) ;
34
35
35
- function validateUserRequest ( user , id , done ) {
36
- if ( ! user ) return done ( new Error ( 'user is undefined' ) ) ;
37
- var isOwnAccount = ( user . id === id ) ;
38
- if ( isOwnAccount ) return done ( ) ;
39
- var isCDFAdmin = _ . contains ( user . roles , 'cdf-admin' ) ;
40
- if ( isCDFAdmin ) return done ( ) ;
41
- var allowedUserIds = [ ] ;
42
-
43
- seneca . act ( { role : 'cd-dojos' , cmd : 'load_usersdojos' , query : { userId : id } } , function ( err , usersDojos ) {
36
+ function cmd_load_prev_founder ( args , done ) {
37
+ var seneca = this ;
38
+ seneca . act ( { role : plugin , cmd : 'load' , id : args . id } , function ( err , user ) {
44
39
if ( err ) return done ( err ) ;
45
40
46
- async . each ( usersDojos , function ( userDojo , cb ) {
47
- async . parallel ( [
48
- loadDojoChampions ,
49
- loadDojoAdmins ,
50
- loadUsersParents
51
- ] , cb ) ;
52
-
53
- function loadDojoChampions ( done ) {
54
- seneca . act ( { role : 'cd-dojos' , cmd : 'load_dojo_champion' , id : userDojo . dojoId } , function ( err , champions ) {
55
- if ( err ) return done ( err ) ;
56
- _ . each ( champions , function ( champion ) {
57
- allowedUserIds . push ( champion . id ) ;
58
- } ) ;
59
- return done ( ) ;
60
- } ) ;
61
- }
62
-
63
- function loadDojoAdmins ( done ) {
64
- seneca . act ( { role : 'cd-dojos' , cmd : 'load_usersdojos' , query : { dojoId : userDojo . dojoId } } , function ( err , usersDojos ) {
65
- if ( err ) return done ( err ) ;
66
- _ . each ( usersDojos , function ( userDojo ) {
67
- var dojoAdminFound = _ . find ( userDojo . userPermissions , function ( userPermission ) {
68
- return userPermission . name === 'dojo-admin' ;
69
- } ) ;
70
- if ( dojoAdminFound ) allowedUserIds . push ( userDojo . userId ) ;
71
- } ) ;
72
- return done ( ) ;
73
- } ) ;
74
- }
75
-
76
- function loadUsersParents ( done ) {
77
- seneca . act ( { role : 'cd-profiles' , cmd : 'list' , query : { userId : id } } , function ( err , profiles ) {
78
- if ( err ) return done ( err ) ;
79
- var userProfile = profiles [ 0 ] ;
80
- _ . each ( userProfile . parents , function ( parentUserId ) {
81
- allowedUserIds . push ( parentUserId ) ;
82
- } ) ;
83
- return done ( ) ;
84
- } ) ;
85
- }
86
- } , function ( err ) {
87
- if ( err ) return done ( err ) ;
88
- allowedUserIds = _ . uniq ( allowedUserIds ) ;
89
- if ( _ . contains ( allowedUserIds , user . id ) ) return done ( ) ;
90
- return done ( new Error ( 'You do not have permission to load this data.' ) ) ;
91
- } ) ;
41
+ return done ( null , _ . pick ( user , [ 'id' , 'email' , 'name' ] ) ) ;
92
42
} ) ;
93
43
}
94
44
95
45
function cmd_load ( args , done ) {
96
46
var seneca = this ;
97
47
var id = args . id ;
98
- var user = args . user ;
99
- var userEntity = seneca . make ( ENTITY_NS ) ;
100
-
101
- async . series ( [
102
- async . apply ( validateUserRequest , user , id ) ,
103
- loadUser
104
- ] , function ( err , res ) {
105
- if ( err ) return done ( null , { ok : false , why : err . message } ) ;
106
- return done ( null , res [ 1 ] ) ;
107
- } ) ;
108
-
109
- function loadUser ( done ) {
110
- userEntity . load$ ( id , done ) ;
111
- }
48
+ seneca . make ( ENTITY_NS ) . load$ ( id , done ) ;
112
49
}
113
50
114
51
function cmd_list ( args , done ) {
@@ -315,20 +252,7 @@ module.exports = function (options) {
315
252
function cmd_update ( args , done ) {
316
253
var seneca = this ;
317
254
var user = args . user ;
318
- var id = args . id ;
319
-
320
- async . series ( [
321
- async . apply ( validateUserRequest , user , id ) ,
322
- updateUser
323
- ] , function ( err , res ) {
324
- if ( err ) return done ( null , { ok : false , why : err . message } ) ;
325
- return done ( null , res [ 1 ] ) ;
326
- } ) ;
327
-
328
- function updateUser ( done ) {
329
- var userEntity = seneca . make ( ENTITY_NS ) ;
330
- userEntity . save$ ( user , done ) ;
331
- }
255
+ seneca . make ( ENTITY_NS ) . save$ ( user , done ) ;
332
256
}
333
257
334
258
function cmd_get_init_user_types ( args , done ) {
0 commit comments