Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 15a51c8

Browse files
author
csg01123119
committed
fix: add attachPolicyToUser retry
1 parent 799a2a0 commit 15a51c8

File tree

3 files changed

+15290
-24
lines changed

3 files changed

+15290
-24
lines changed

‎app/main/files/modals/grant-modal.js‎

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /