Browse Source

设置账号至其他项目,覆盖、跳过

MaiXinRong 1 month ago
parent
commit
177476c0b7

+ 2 - 1
app/public/js/sp_setting_permission.js

@@ -288,7 +288,8 @@ $(document).ready(() => {
         for (const u of userCheck) {
             copyData.uid.push(parseInt(u.getAttribute('uid')));
         }
-        postData(`/sp/${spid}/setting/user/permission/update`, { copy: copyData }, function(result) {
+        const existType = $('[name=exist-type]:checked').val();
+        postData(`/sp/${spid}/setting/user/permission/update`, { copy: copyData, existType }, function(result) {
             toastr.success('设置成功');
             $('#copy-user-batch').modal('hide');
         });

+ 8 - 8
app/service/sub_proj_permission.js

@@ -350,18 +350,18 @@ module.exports = app => {
                 const exist = await this.getAllDataByCondition({ columns: ['uid'], where: { spid } });
                 copyPermission.forEach(cp => {
                     const ecp = exist.find(x => { return x.uid === cp.uid; });
-                    if (ecp && force) {
-                        const udata = { id: ecp.id };
-                        for (const prop in cp) {
-                            if (prop.indexOf('_permission') > 1) udata[prop] = cp[prop];
-                        }
-                        updateData.push(udata)
-                    } else {
+                    if (!ecp) {
                         const idata = { id: this.uuid.v4(), spid, pid: cp.pid, uid: cp.uid };
                         for (const prop in cp) {
                             if (prop.indexOf('_permission') > 1) idata[prop] = cp[prop];
                         }
                         insertData.push(idata);
+                    } else if (force) {
+                        const udata = { id: ecp.id };
+                        for (const prop in cp) {
+                            if (prop.indexOf('_permission') > 1) udata[prop] = cp[prop];
+                        }
+                        updateData.push(udata);
                     }
                 });
             }
@@ -374,7 +374,7 @@ module.exports = app => {
             if (data.add) result.add = await this._addUser(subProject, data.add);
             if (data.del) result.del = await this._delUser(subProject, data.del);
             if (data.update) result.update = await this._updateUserPermission(data.update);
-            if (data.copy) await this._copyUserPermission(data.copy);
+            if (data.copy) await this._copyUserPermission(data.copy, data.existType === 'cover');
             return result;
         }
 

+ 17 - 4
app/view/sp_setting/user_modal.ejs

@@ -181,10 +181,23 @@
                     </div>
                 </div>
             </div>
-            <div class="modal-footer">
-                <input type="hidden" id="source-permission">
-                <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">关闭</button>
-                <button type="button" class="btn btn-sm btn-sm btn-primary" id="copy-user-batch-ok">确定</button>
+            <div class="modal-footer" style="justify-content: space-between">
+                <div class="d-flex">
+                    <div class="form-check form-check-inline">已有用户:</div>
+                    <div class="form-check form-check-inline">
+                        <input class="form-check-input" type="radio" name="exist-type" id="inlineRadio2" value="cover" checked>
+                        <label class="form-check-label" for="inlineRadio2">覆盖</label>
+                    </div>
+                    <div class="form-check form-check-inline">
+                        <input class="form-check-input" type="radio" name="exist-type" id="inlineRadio3" value="skip">
+                        <label class="form-check-label" for="inlineRadio3">跳过</label>
+                    </div>
+                </div>
+                <div class="d-flex">
+                    <input type="hidden" id="source-permission">
+                    <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">关闭</button>
+                    <button type="button" class="btn btn-sm btn-sm btn-primary ml-1" id="copy-user-batch-ok">确定</button>
+                </div>
             </div>
         </div>
     </div>