@@ -220,33 +220,41 @@ angular.module('web').controller('grantModalCtrl', [
220220 var title = T ( 'simplePolicy.title' ) ; // 简化policy授权
221221 var successMsg = T ( 'simplePolicy.success' ) ; // '应用policy成功'
222222
223+ let retry = 0 ; // policyName创建后需要等几秒才生效,故需要重试3次,使用setTimeout避免attachPolicyToUser提示policyName不存在
224+ const retryFunc = ( ) => {
225+ if ( retry < 3 ) {
226+ retry ++ ;
227+ setTimeout ( ( ) => {
228+ ramSvs
229+ . attachPolicyToUser ( policyName , $scope . grant . userName ) // 为指定用户添加权限
230+ . then ( function ( ) {
231+ // 发邮件
232+ if ( sendInfo ) {
233+ Mailer . send ( sendInfo ) . then (
234+ function ( result ) {
235+ console . log ( result ) ;
236+ Toast . success ( T ( 'mail.test.success' ) ) ;
237+ } ,
238+ function ( err ) {
239+ console . error ( err ) ;
240+ Toast . error ( err ) ;
241+ }
242+ ) ;
243+ }
244+ 245+ Toast . success ( successMsg ) ;
246+ cancel ( ) ;
247+ } ) . catch ( ( ) => {
248+ retryFunc ( ) ; // 递归重试
249+ } ) ;
250+ } , 1000 ) ;
251+ }
252+ } ;
223253 checkCreatePolicy ( policyName , $scope . grant . policy , title ) . then (
224254 function ( ) {
225255 switch ( $scope . grant . toType ) {
226256 case 'user' :
227- // 使用setTimeout 避免createPolicy后,服务端的policy没生效导致attachPolicyToUser提示policyName不存在
228- setTimeout ( ( ) => {
229- ramSvs
230- . attachPolicyToUser ( policyName , $scope . grant . userName ) // 为指定用户添加权限
231- . then ( function ( ) {
232- // 发邮件
233- if ( sendInfo ) {
234- Mailer . send ( sendInfo ) . then (
235- function ( result ) {
236- console . log ( result ) ;
237- Toast . success ( T ( 'mail.test.success' ) ) ;
238- } ,
239- function ( err ) {
240- console . error ( err ) ;
241- Toast . error ( err ) ;
242- }
243- ) ;
244- }
245- 246- Toast . success ( successMsg ) ;
247- cancel ( ) ;
248- } ) ;
249- } , 999 ) ;
257+ retryFunc ( ) ;
250258 break ;
251259 case 'group' :
252260 ramSvs
0 commit comments