@@ -103,37 +103,60 @@ exports.infouser = function(req,res){
103
103
} ) ;
104
104
} ) ;
105
105
} else if ( req . method == 'POST' ) {
106
- var condition = { } ;
107
- if ( cat == 3 ) {
108
- condition . modify = {
109
- '$set' : {
110
- rank : req . body . rank
111
- }
112
- }
106
+ if ( parseInt ( req . query . front , 10 ) && ( req . body . oldpassword || req . body . password ) ) {
107
+ if ( / ^ [ \w ] { 6 , 12 } $ / . test ( req . body . oldpassword ) && / ^ [ \w ] { 6 , 12 } $ / . test ( req . body . password ) ) {
108
+ return res . json ( { flg :0 , msg :'密码必须要6位以上' } ) ;
109
+ }
110
+ jixiang . getOne ( { _id :uid } , 'users' , function ( err , doc ) {
111
+ if ( err ) return res . json ( { flg :0 , msg :err } ) ;
112
+ var md5 = crypto . createHash ( 'md5' ) ;
113
+ var oldpassword = md5 . update ( req . body . oldpassword ) . digest ( 'base64' ) ;
114
+ if ( doc . password !== oldpassword )
115
+ return res . json ( { flg :0 , msg :'原密码不正确!' } ) ;
116
+ setInfo ( ) ;
117
+ } )
113
118
} else {
114
- condition . modify = {
115
- '$set' : {
116
- sex : req . body . sex
119
+ setInfo ( ) ;
120
+ }
121
+ function setInfo ( ) {
122
+ var condition = { } ;
123
+ if ( cat == 3 ) {
124
+ condition . modify = {
125
+ '$set' : {
126
+ rank : req . body . rank
127
+ }
128
+ }
129
+ } else {
130
+ condition . modify = {
131
+ '$set' : {
132
+ sex : req . body . sex
133
+ }
117
134
}
118
135
}
119
- }
120
- if ( cat == 2 ) {
121
- condition . modify [ '$set' ] . school = req . body . school ;
122
- }
123
- if ( req . body . password ) {
124
- //生成口令散列
125
- var md5 = crypto . createHash ( 'md5' ) ;
126
- var password = md5 . update ( req . body . password ) . digest ( 'base64' ) ;
127
- condition . modify [ '$set' ] . password = password ;
128
- }
129
- condition . query = {
130
- _id : uid
131
- }
132
- jixiang . update ( condition , 'users' , function ( err ) {
133
- if ( err ) {
134
- return res . json ( { flg :0 , msg :'修改失败!' } ) ;
136
+ if ( cat == 2 ) {
137
+ condition . modify [ '$set' ] . school = req . body . school ;
135
138
}
136
- return res . json ( { flg :1 , msg :'修改成功!' , redirect :'/admin/user?cat=' + cat } ) ;
137
- } ) ;
139
+ if ( req . body . password ) {
140
+ //生成口令散列
141
+ var md5 = crypto . createHash ( 'md5' ) ;
142
+ var password = md5 . update ( req . body . password ) . digest ( 'base64' ) ;
143
+ condition . modify [ '$set' ] . password = password ;
144
+ }
145
+ condition . query = {
146
+ _id : uid
147
+ }
148
+ jixiang . update ( condition , 'users' , function ( err ) {
149
+ if ( err ) {
150
+ return res . json ( { flg :0 , msg :'修改失败!' } ) ;
151
+ }
152
+ var redirect = '/admin/user?cat=' + cat ;
153
+ if ( parseInt ( req . query . front , 10 ) ) {
154
+ redirect = ( parseInt ( req . query . front , 10 ) == 1 ) ? '/stu/' : '/teach/' ;
155
+ redirect += req . session . user . username ;
156
+ }
157
+ return res . json ( { flg :1 , msg :'修改成功!' , redirect :redirect } ) ;
158
+ } ) ;
159
+ }
160
+
138
161
}
139
162
}
0 commit comments