Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
T
TokenVaultManagement
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
jasonwai
TokenVaultManagement
Commits
43d0bc16
Commit
43d0bc16
authored
Jun 21, 2023
by
Jason
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.新增欄位使用者和權限
2.編輯欄位使用者和權限未完成
parent
8c30004c
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
354 additions
and
93 deletions
+354
-93
TokenVaultController .cs
...Management/backstage/Controllers/TokenVaultController .cs
+72
-34
ListUsers.zh.resx
...nt/backstage/Resources/Views/TokenVault/ListUsers.zh.resx
+34
-1
ListUsers.cshtml
...lt Management/backstage/Views/TokenVault/ListUsers.cshtml
+248
-58
key_part1.png
...n Vault Management/backstage/wwwroot/images/key_part1.png
+0
-0
key_part2.png
...n Vault Management/backstage/wwwroot/images/key_part2.png
+0
-0
No files found.
Merchant Token Vault Management/backstage/Controllers/TokenVaultController .cs
View file @
43d0bc16
...
...
@@ -599,7 +599,7 @@ namespace backstage.Controllers
var
matchingMask
=
existField
.
masks
.
FirstOrDefault
(
m
=>
m
.
id
==
maskId
);
if
(
matchingMask
!=
null
)
{
string
maskText
=
$"[
{
matchingMask
.
id
}
] -
{
matchingMask
.
name
}
-
{
matchingMask
.
setting
}
"
;
string
maskText
=
$"[
{
matchingMask
.
id
}
] -
{
matchingMask
.
name
}
-
{
matchingMask
.
setting
}
<br/>
"
;
maskTextList
.
Add
(
maskText
);
}
}
...
...
@@ -628,25 +628,48 @@ namespace backstage.Controllers
/// <returns></returns>
[
Authorize
(
Policy
=
"AdminOnly"
)]
[
HttpPost
]
public
async
Task
<
ResultModel
>
AddUsers
(
[
FromBody
]
IFormCollection
form
)
public
async
Task
<
ResultModel
>
AddUsers
(
IFormCollection
form
)
{
string
msg
;
var
result
=
new
ResultModel
();
int
merchant_id
=
Convert
.
ToInt32
(
form
[
"merchant_id"
]);
if
(!
form
.
ContainsKey
(
"allow_decrypt"
)
||
!
form
.
ContainsKey
(
"allow_new"
)
||
!
form
.
ContainsKey
(
"allow_update"
)
||
!
form
.
ContainsKey
(
"allow_del"
)
||
!
form
.
ContainsKey
(
"allow_masks"
)
||
!
form
.
ContainsKey
(
"default_mask_id"
)||
!
form
.
ContainsKey
(
"allow_masks"
)
||
!
form
.
ContainsKey
(
"vault_id"
)
||
!
form
.
ContainsKey
(
"field_id"
)
||
!
form
.
ContainsKey
(
"merchant_id"
)
)
{
// 至少有一個鍵不存在,處理這種情況
switch
(
_currentLanguage
)
{
case
"en"
:
msg
=
"All fields are required."
;
break
;
case
"zh"
:
msg
=
"所有欄位必填"
;
break
;
default
:
msg
=
"所有欄位必填"
;
break
;
}
result
.
IsSuccess
=
false
;
result
.
Message
=
msg
;
return
result
;
}
int
merchant_id
=
Convert
.
ToInt32
(
form
[
"merchant_id"
]);
int
vault_id
=
Convert
.
ToInt32
(
form
[
"vault_id"
]);
int
field_id
=
Convert
.
ToInt32
(
form
[
"field_id"
]);
int
user_id
=
Convert
.
ToInt32
(
form
[
"id"
]);
// 構建包含參數的查詢字串
var
queryString
=
new
RouteValueDictionary
{
{
"Merchant_id"
,
merchant_id
},
{
"vault_id"
,
vault_id
},
{
"field_id"
,
field_id
},
};
// 取得使用者的 "token" Claim 值
string
token
=
User
.
FindFirstValue
(
"token"
);
...
...
@@ -980,34 +1003,49 @@ namespace backstage.Controllers
var
FieldsResponse2
=
new
FieldsResponse
();
url
=
_config
[
"IP"
]
+
"/v2/vault"
;
httpMethod
=
HttpMethod
.
Post
;
var
addUserToField_data
=
new
[]
try
{
new
var
x
=
form
[
"allow_masks"
].
ToString
().
Split
(
','
).
Select
(
int
.
Parse
).
ToArray
();
string
numberString
=
form
[
"allow_masks"
].
ToString
();
int
[]
allow_masks
=
Array
.
ConvertAll
(
numberString
.
Split
(
','
),
int
.
Parse
);
var
addUserToField_data
=
new
[]
{
action
=
"ADD"
,
id
=
user_id
,
field_id
=
field_id
,
allow_decrypt
=
"1"
,
allow_new
=
"1"
,
allow_update
=
"1"
,
allow_del
=
"1"
,
default_mask_id
=
"1"
}
};
parameters
=
new
Dictionary
<
string
,
string
>
{
{
"id"
,
vault_id
.
ToString
()},
{
"info"
,
"USERS"
},
{
"Merchant_id"
,
merchant_id
.
ToString
()},
{
"data"
,
JsonConvert
.
SerializeObject
(
addUserToField_data
)},
new
{
action
=
"ADD"
,
id
=
user_id
,
field_id
=
field_id
,
allow_decrypt
=
Convert
.
ToInt32
(
form
[
"allow_decrypt"
].
ToString
()),
allow_new
=
Convert
.
ToInt32
(
form
[
"allow_new"
].
ToString
()),
allow_update
=
Convert
.
ToInt32
(
form
[
"allow_update"
].
ToString
()),
allow_del
=
Convert
.
ToInt32
(
form
[
"allow_del"
].
ToString
()),
allow_masks
=
allow_masks
,
default_mask_id
=
Convert
.
ToInt32
(
form
[
"default_mask_id"
])
}
};
parameters
=
new
Dictionary
<
string
,
string
>
{
{
"id"
,
vault_id
.
ToString
()},
{
"info"
,
"USERS"
},
{
"Merchant_id"
,
merchant_id
.
ToString
()},
{
"data"
,
JsonConvert
.
SerializeObject
(
addUserToField_data
)},
};
}
catch
(
Exception
e
)
{
return
result
;
}
apiResult
=
await
_callApi
.
CallAPI
(
url
,
parameters
,
httpMethod
);
if
(
apiResult
.
IsSuccess
)
{
FieldsResponse2
=
JsonConvert
.
DeserializeObject
<
Fields
Response
>(
apiResult
.
Data
.
ToString
());
if
(
FieldsResponse2
.
failInfo
!=
null
)
var
response
=
JsonConvert
.
DeserializeObject
<
Response
>(
apiResult
.
Data
.
ToString
());
if
(
response
.
r
!=
0
)
{
switch
(
_currentLanguage
)
{
...
...
@@ -1024,7 +1062,7 @@ namespace backstage.Controllers
}
result
.
IsSuccess
=
false
;
result
.
Message
=
msg
+
FieldsResponse2
.
m
;
result
.
Message
=
msg
+
response
.
r
+
","
+
response
.
m
;
return
result
;
}
else
...
...
Merchant Token Vault Management/backstage/Resources/Views/TokenVault/ListUsers.zh.resx
View file @
43d0bc16
...
...
@@ -120,18 +120,30 @@
<data
name=
"Add User"
xml:space=
"preserve"
>
<value>
新增使用者
</value>
</data>
<data
name=
"Allow decrypt"
xml:space=
"preserve"
>
<value>
允許解密
</value>
</data>
<data
name=
"Allow decryption"
xml:space=
"preserve"
>
<value>
允許解密
</value>
</data>
<data
name=
"Allow delete"
xml:space=
"preserve"
>
<value>
允許刪除
</value>
</data>
<data
name=
"Allow new"
xml:space=
"preserve"
>
<value>
允許新增
</value>
</data>
<data
name=
"Allow to add"
xml:space=
"preserve"
>
<value>
允許新增
</value>
</data>
<data
name=
"Allow update"
xml:space=
"preserve"
>
<value>
允許更新
</value>
</data>
<data
name=
"Are you sure you want to remove this user?"
xml:space=
"preserve"
>
<value>
確認移除使用者?
</value>
</data>
<data
name=
"Cancel"
xml:space=
"preserve"
>
<value>
取消
</value>
</data>
<data
name=
"Choose department"
xml:space=
"preserve"
>
<value>
選擇部門
</value>
</data>
...
...
@@ -153,6 +165,9 @@
<data
name=
"Data Token Vault"
xml:space=
"preserve"
>
<value>
資料代碼保險庫
</value>
</data>
<data
name=
"Default mask"
xml:space=
"preserve"
>
<value>
預設遮罩
</value>
</data>
<data
name=
"Default Mask ID"
xml:space=
"preserve"
>
<value>
預設遮罩ID
</value>
</data>
...
...
@@ -162,6 +177,9 @@
<data
name=
"Description"
xml:space=
"preserve"
>
<value>
描述
</value>
</data>
<data
name=
"Edit user"
xml:space=
"preserve"
>
<value>
編輯使用者
</value>
</data>
<data
name=
"Enable"
xml:space=
"preserve"
>
<value>
啟用
</value>
</data>
...
...
@@ -180,13 +198,25 @@
<data
name=
"Name"
xml:space=
"preserve"
>
<value>
名稱
</value>
</data>
<data
name=
"No"
xml:space=
"preserve"
>
<value>
否
</value>
</data>
<data
name=
"Number of codes"
xml:space=
"preserve"
>
<value>
代碼數量
</value>
</data>
<data
name=
"Number of users"
xml:space=
"preserve"
>
<value>
使用者數量
</value>
</data>
<data
name=
"Remove User"
xml:space=
"preserve"
>
<data
name=
"Please select default mask(Single option)."
xml:space=
"preserve"
>
<value>
請選預設遮罩(單選)
</value>
</data>
<data
name=
"Please select mask(multiple options)."
xml:space=
"preserve"
>
<value>
請選遮罩(複選)
</value>
</data>
<data
name=
"Please select user(Single option)."
xml:space=
"preserve"
>
<value>
請選使用者名稱(單選)
</value>
</data>
<data
name=
"Remove user"
xml:space=
"preserve"
>
<value>
移除使用者
</value>
</data>
<data
name=
"Revise"
xml:space=
"preserve"
>
...
...
@@ -219,4 +249,7 @@
<data
name=
"Vault"
xml:space=
"preserve"
>
<value>
保險庫
</value>
</data>
<data
name=
"Yes"
xml:space=
"preserve"
>
<value>
是
</value>
</data>
</root>
\ No newline at end of file
Merchant Token Vault Management/backstage/Views/TokenVault/ListUsers.cshtml
View file @
43d0bc16
...
...
@@ -13,7 +13,11 @@
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<style>
.editUser {
cursor: pointer;
}
</style>
}
<div class="page-header">
...
...
@@ -43,7 +47,7 @@
<div>
<a type="button" class="btn btn-info float-right mb-2 @disabledClass" data-toggle="modal" data-target="#new-field-user">@Localizer["Add User"]</a>
<a type="button"
id="open_modal"
class="btn btn-info float-right mb-2 @disabledClass" data-toggle="modal" data-target="#new-field-user">@Localizer["Add User"]</a>
<div class="rank-table">
<div class="table-responsive">
<table class="table table-striped ">
...
...
@@ -67,30 +71,30 @@
@foreach (var i in Model)
{
<tr id="@i.id" class="">
<td>@i.id</td>
<td>@i.name</td>
<td>@i.username</td>
<td
class="editUser"
>@i.id</td>
<td
class="editUser"
>@i.name</td>
<td
class="editUser"
>@i.username</td>
<td class="custom-tooltip" data-tooltip="@i.masksSettingText">@i.masksText</td>
<td>
<td
class="editUser" data-bool="@i.allow_decrypt"
>
@if (i.allow_decrypt == 1)
{<span>✔</span>}
</td>
<td>
<td
class="editUser" data-bool="@i.allow_new"
>
@if (i.allow_new == 1)
{<span>✔</span>}
</td>
<td>
<td
class="editUser" data-bool="@i.allow_update"
>
@if (i.allow_update == 1)
{<span>✔</span>}
</td>
<td>
<td
class="editUser" data-bool="@i.allow_del"
>
@if (i.allow_del == 1)
{<span>✔</span>}
</td>
<td>@i.default_mask_id</td>
<td
class="editUser"
>@i.default_mask_id</td>
<td>
<a data-id="@i.id" class="btn btnPermission btn-sm" data-toggle="modal" data-target="#delete-field-user">@Localizer["Remove User"]</a>
...
...
@@ -147,7 +151,7 @@
<button type="button" class="close" data-dismiss="modal">×</button>
-->
<h3 class="modal-title">
新增使用者
@Localizer["Add user"]
</h3>
</div> <!--END of div "modal-header"-->
...
...
@@ -156,26 +160,26 @@
<form id="addUserForm" class="form-horizontal0">
<!-- <div class="form-group">
<label class="control-labe" for="name">姓名:</label>
<div class="">
<input type="text" class="form-control form-control-sm0">
</div>
</div> -->
<label class="control-labe" for="name">姓名:</label>
<div class="">
<input type="text" class="form-control form-control-sm0">
</div>
</div> -->
<!-- <div class="form-group">
<label class="control-labe" for="userName">使用者名稱:</label>
<div class="">
<input type="text" class="form-control form-control-sm0">
</div>
</div> -->
<label class="control-labe" for="userName">使用者名稱:</label>
<div class="">
<input type="text" class="form-control form-control-sm0">
</div>
</div> -->
<input hidden name="merchant_id" value="@ViewBag.Merchant_id" />
<input hidden name="vault_id" value="@ViewBag.vault_id" />
<input hidden name="field_id" value="@ViewBag.field_id" />
<input hidden name="id" />
<div class="form-group">
<label class="control-labe" for="userName">
使用者名稱
:</label>
<label class="control-labe" for="userName">
@Localizer["Username"]
:</label>
<div class="form-group">
<div class="dropdown bootstrap-select selecter form-control ">
<select id="user_selectpicker" title="
請選使用者名稱(單選)
" class="selectpicker selecter form-control selectpicker-tokenization" asp-items="ViewBag.users" tabindex="null">
<select id="user_selectpicker" title="
@Localizer["Please select user(Single option)."]
" class="selectpicker selecter form-control selectpicker-tokenization" asp-items="ViewBag.users" tabindex="null">
</select>
</div>
...
...
@@ -183,92 +187,92 @@
</div>
<div class="form-group">
<label class="control-labe" for="mask">
遮罩
:</label>
<label class="control-labe" for="mask">
@Localizer["Allow mask"]
:</label>
<div class="form-group">
<div class="dropdown bootstrap-select show-tick selecter form-control ">
<select name="allow_masks" id="select_mask" multiple="" title="
請選遮罩(複選)
" class="mask_selectpicker selectpicker selecter form-control selectpicker-tokenization" tabindex="null" asp-items="ViewBag.masks">
<select name="allow_masks" id="select_mask" multiple="" title="
@Localizer["Please select mask(multiple options)."]
" class="mask_selectpicker selectpicker selecter form-control selectpicker-tokenization" tabindex="null" asp-items="ViewBag.masks">
</select>
</div>
</div>
</div>
<div class="form-group">
<label class="control-labe" for="mask">
預設遮罩
:</label>
<label class="control-labe" for="mask">
@Localizer["Default mask"]
:</label>
<div class="form-group">
<div class="dropdown bootstrap-select selecter form-control ">
<select name="default_mask_id" id="default_mask" title="
請選預設遮罩(單選)
" class=" default_mask_selectpicker selectpicker selecter form-control selectpicker-tokenization" tabindex="null" asp-items="ViewBag.masks">
<select name="default_mask_id" id="default_mask" title="
@Localizer["Please select default mask(Single option)."]
" class=" default_mask_selectpicker selectpicker selecter form-control selectpicker-tokenization" tabindex="null" asp-items="ViewBag.masks">
</select>
</div>
</div>
</div>
<div class="form-group">
<label class="control-labe" for="">
允許解密
:</label>
<label class="control-labe" for="">
@Localizer["Allow decrypt"]
:</label>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="allow_decrypt" id="allowDecodeY" value="
option1"
>
<input class="form-check-input" type="radio" name="allow_decrypt" id="allowDecodeY" value="
1" checked
>
<label class="form-check-label" for="allowDecodeY">
是
@Localizer["Yes"]
</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="allow_decrypt" id="allowDecodeN" value="
option2
">
<input class="form-check-input" type="radio" name="allow_decrypt" id="allowDecodeN" value="
0
">
<label class="form-check-label" for="allowDecodeN">
否
@Localizer["No"]
</label>
</div>
</div>
<div class="form-group">
<label class="control-labe" for="">
允許新增
:</label>
<label class="control-labe" for="">
@Localizer["Allow new"]
:</label>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="allow_new" id="allowAddY" value="
option1"
>
<input class="form-check-input" type="radio" name="allow_new" id="allowAddY" value="
1" checked
>
<label class="form-check-label" for="allowAddY">
是
@Localizer["Yes"]
</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="allow_new" id="allowAddN" value="
option2
">
<input class="form-check-input" type="radio" name="allow_new" id="allowAddN" value="
0
">
<label class="form-check-label" for="allowAddN">
否
@Localizer["No"]
</label>
</div>
</div>
<div class="form-group">
<label class="control-labe" for="">
允許更新
:</label>
<label class="control-labe" for="">
@Localizer["Allow update"]
:</label>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="allow_update" id="allowUpdateY" value="
option1"
>
<input class="form-check-input" type="radio" name="allow_update" id="allowUpdateY" value="
1" checked
>
<label class="form-check-label" for="allowUpdateY">
是
@Localizer["Yes"]
</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="allow_update" id="allowUpdateN" value="
option2
">
<input class="form-check-input" type="radio" name="allow_update" id="allowUpdateN" value="
0
">
<label class="form-check-label" for="allowUpdateN">
否
@Localizer["No"]
</label>
</div>
</div>
<div class="form-group">
<label class="control-labe" for="">
允許刪除
:</label>
<label class="control-labe" for="">
@Localizer["Allow delete"]
:</label>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="allow_del" id="allowDeleteY" value="
option1"
>
<input class="form-check-input" type="radio" name="allow_del" id="allowDeleteY" value="
1" checked
>
<label class="form-check-label" for="allowDeleteY">
是
@Localizer["Yes"]
</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="allow_del" id="allowDeleteN" value="
option2
">
<input class="form-check-input" type="radio" name="allow_del" id="allowDeleteN" value="
0
">
<label class="form-check-label" for="allowDeleteN">
否
@Localizer["No"]
</label>
</div>
</div>
<div class="SubmitBlock">
<button id="createUserBtn" class="btn btn-mainblue-solid btnSubmit">
新增
</button>
<button type="button" class="btn btn-mainblue-hollow btnReset" data-dismiss="modal">
取消
</button>
<button id="createUserBtn" class="btn btn-mainblue-solid btnSubmit">
@Localizer["Send out"]
</button>
<button type="button" class="btn btn-mainblue-hollow btnReset" data-dismiss="modal">
@Localizer["Cancel"]
</button>
</div>
</form>
</div> <!--END of div "modal-body"-->
...
...
@@ -284,6 +288,155 @@
</div>
<!--編輯使用者 Popup Form-->
<!--<div class="modal fade modal-full" id="edit-field-user" tabindex="-1" style="display: none;" aria-hidden="true">
<div class="modal-dialog modalforMemberGo">-->
<!-- Modal content-->
<!--<div class="modal-content">
<div class="modal-header">-->
<!--
<button type="button" class="close" data-dismiss="modal">×</button>
-->
<!--<h3 class="modal-title">
@Localizer["Edit user"]
</h3>
</div>--> <!--END of div "modal-header"-->
<!--<div class="modal-body" style="padding-top:35px">
<form id="editUserForm" class="form-horizontal0">-->
<!-- <div class="form-group">
<label class="control-labe" for="name">姓名:</label>
<div class="">
<input type="text" class="form-control form-control-sm0">
</div>
</div> -->
<!-- <div class="form-group">
<label class="control-labe" for="userName">使用者名稱:</label>
<div class="">
<input type="text" class="form-control form-control-sm0">
</div>
</div> -->
<!--<input hidden name="merchant_id" value="@ViewBag.Merchant_id" />
<input hidden name="vault_id" value="@ViewBag.vault_id" />
<input hidden name="field_id" value="@ViewBag.field_id" />
<input hidden name="id" />
<div class="form-group">
<label class="control-labe" for="userName"> @Localizer["Username"]:</label>
<div class="form-group">
<div class="dropdown bootstrap-select selecter form-control ">
<select id="edit_user_selectpicker" title="@Localizer["Please select user(Single option)."]" class="selectpicker selecter form-control selectpicker-tokenization" tabindex="null">
</select>
</div>
</div>
</div>
<div class="form-group">
<label class="control-labe" for="mask">@Localizer["Allow mask"]:</label>
<div class="form-group">
<div class="dropdown bootstrap-select show-tick selecter form-control ">
<select name="allow_masks" id="edit_select_mask" multiple="" title="@Localizer["Please select mask(multiple options)."]" class="mask_selectpicker selectpicker selecter form-control selectpicker-tokenization" tabindex="null" asp-items="ViewBag.masks">
</select>
</div>
</div>
</div>
<div class="form-group">
<label class="control-labe" for="mask">@Localizer["Default mask"]:</label>
<div class="form-group">
<div class="dropdown bootstrap-select selecter form-control ">
<select name="default_mask_id" id="edit_default_mask" title="@Localizer["Please select default mask(Single option)."]" class=" default_mask_selectpicker selectpicker selecter form-control selectpicker-tokenization" tabindex="null" asp-items="ViewBag.masks">
</select>
</div>
</div>
</div>
<div class="form-group">
<label class="control-labe" for="">@Localizer["Allow decrypt"]:</label>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="allow_decrypt" id="allowDecodeY" value="1" checked>
<label class="form-check-label" for="allowDecodeY">
@Localizer["Yes"]
</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="allow_decrypt" id="allowDecodeN" value="0">
<label class="form-check-label" for="allowDecodeN">
@Localizer["No"]
</label>
</div>
</div>
<div class="form-group">
<label class="control-labe" for="">@Localizer["Allow new"]:</label>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="allow_new" id="allowAddY" value="1" checked>
<label class="form-check-label" for="allowAddY">
@Localizer["Yes"]
</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="allow_new" id="allowAddN" value="0">
<label class="form-check-label" for="allowAddN">
@Localizer["No"]
</label>
</div>
</div>
<div class="form-group">
<label class="control-labe" for="">@Localizer["Allow update"]:</label>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="allow_update" id="allowUpdateY" value="1" checked>
<label class="form-check-label" for="allowUpdateY">
@Localizer["Yes"]
</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="allow_update" id="allowUpdateN" value="0">
<label class="form-check-label" for="allowUpdateN">
@Localizer["No"]
</label>
</div>
</div>
<div class="form-group">
<label class="control-labe" for="">@Localizer["Allow delete"]:</label>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="allow_del" id="allowDeleteY" value="1" checked>
<label class="form-check-label" for="allowDeleteY">
@Localizer["Yes"]
</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="allow_del" id="allowDeleteN" value="0">
<label class="form-check-label" for="allowDeleteN">
@Localizer["No"]
</label>
</div>
</div>
<div class="SubmitBlock">
<button id="createUserBtn" class="btn btn-mainblue-solid btnSubmit">@Localizer["Send out"]</button>
<button type="button" class="btn btn-mainblue-hollow btnReset" data-dismiss="modal">@Localizer["Cancel"]</button>
</div>
</form>
</div>--> <!--END of div "modal-body"-->
<!--<div class="modal-footer modalforMemberGo">-->
<!--
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
-->
<!--</div>--> <!--END of div "modal-footer"-->
<!--</div>--><!-- END of Modal content-->
<!--</div>--><!-- END of div "modal-dialog modal-lg" -->
<!--</div>-->
<!--移除user Form-->
<!-- Modal -->
<div class="modal fade " id="delete-field-user" tabindex="-1" style=" padding-right: 17px;" aria-modal="true" role="dialog">
...
...
@@ -349,7 +502,11 @@
var selectUserId = 0;
$('#open_modal').click(function () {
// 選擇索引值大於3(即第四個以後的)的所有 input 元素並清除它們的值
//$('#addUserForm input:gt(3)').val('');
})
//選定使用者
...
...
@@ -379,16 +536,17 @@
$('#default_mask').selectpicker('refresh');
});
//送出新增使用者
$("#createUserBtn").on("click", function () {
$('#createMaskForm').serialize(),
//送出新增使用者
$("#createUserBtn").on("click", function (e) {
e.preventDefault();
console.log('fomr=')
console.log('fomr=' + $('#addUserForm').serialize());
$.ajax({
url: "/TokenVault/Add
u
sers",
url: "/TokenVault/Add
U
sers",
method: "POST",
contentType: "application/json",
data: $('#addUserForm').serialize(),
success: function (response) {
showAlert(response.isSuccess, response.message);
...
...
@@ -406,9 +564,41 @@
});
});
//移除user
$('.btnPermission').click(function () {
////編輯user
//// 監聽所有 class 為 'editUser' 的元素的點擊事件
//$('.editUser').click(function () {
// // 從被點擊的元素中獲取相關的值
// var id = $(this).closest('tr').children('td').eq(0).text();
// var name = $(this).closest('tr').children('td').eq(1).text();
// var username = $(this).closest('tr').children('td').eq(2).text();
// var allow_masks = $(this).closest('tr').children('td').eq(3).text();
// var default_mask = $(this).closest('tr').children('td').eq(8).text();
// // 獲取 allow_decrypt、allow_new、allow_update 及 allow_del 的值
// var allowDecrypt = $(this).closest('tr').children('td').eq(4).data('bool')
// var allowNew = $(this).closest('tr').children('td').eq(5).data('bool');
// var allowUpdate = $(this).closest('tr').children('td').eq(6).data('bool');
// var allowDel = $(this).closest('tr').children('td').eq(7).data('bool');
// console.log('allow_masks=' + allow_masks)
// console.log('default_mask=' + default_mask)
// // 將獲取的值填入模態框的欄位中
// //$('#addUserForm input[name="id"]').val(id);
// //$('#user_selectpicker').val(id);
// //$('#user_selectpicker').selectpicker('refresh');
// // 將 allow_decrypt、allow_new、allow_update 及 allow_del 的值填入模態框的欄位中
// $('#editUserForm input[name="allow_decrypt"][value="' + allowDecrypt + '"]').prop('checked', true);
// $('#editUserForm input[name="allow_new"][value="' + allowNew + '"]').prop('checked', true);
// $('#editUserForm input[name="allow_update"][value="' + allowUpdate + '"]').prop('checked', true);
// $('#editUserForm input[name="allow_del"][value="' + allowDel + '"]').prop('checked', true);
// // 開啟模態框
// $('#edit-field-user').modal('show');
//});
//移除user
$('.btnPermission').click(function () {
selectUserId = $(this).data('id');
console.log('selectUserId=' + selectUserId);
...
...
Merchant Token Vault Management/backstage/wwwroot/images/key_part1.png
View replaced file @
8c30004c
View file @
43d0bc16
716 Bytes
|
W:
|
H:
706 Bytes
|
W:
|
H:
2-up
Swipe
Onion skin
Merchant Token Vault Management/backstage/wwwroot/images/key_part2.png
View replaced file @
8c30004c
View file @
43d0bc16
709 Bytes
|
W:
|
H:
722 Bytes
|
W:
|
H:
2-up
Swipe
Onion skin
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment