Skip to content

Commit 037c818

Browse files
author
shaohaozhi
committed
user safe delete.
1 parent e5f6aef commit 037c818

5 files changed

Lines changed: 38 additions & 5 deletions

File tree

src/NSmartProxy.Infrastructure/Shared/IDbOperator.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public interface IDbOperator : IDisposable
1313
string Get(long key);
1414
string Get(string key);
1515
void Delete(int index);
16+
void DeleteHash(string key);
1617
long GetLength();
1718
void Close();
1819
bool Exist(string key);

src/NSmartProxy/Database/NSmartDb.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,13 +122,24 @@ public List<string> Select(int startIndex, int length)
122122
//输出
123123
}
124124

125+
/// <summary>
126+
/// 通过序列删除数据,并且返回id
127+
/// </summary>
128+
/// <param name="index"></param>
129+
/// <returns></returns>
125130
public void Delete(int index)
126131
{
127132
var key = seqf.Get(index);
128133
seqf.Delete(index);
134+
129135
hashf.Remove(BitConverter.GetBytes(key));
130136
}
131137

138+
public void DeleteHash(string key)
139+
{
140+
hashf.Remove(String2Bytes(key));
141+
}
142+
132143
public string GetOne(string key)
133144
{
134145
return Bytes2String(hashf.Get(String2Bytes(key)));

src/NSmartProxy/Extension/HttpServer.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@ public HttpServer(INSmartLogger logger, IDbOperator dbop)
4040

4141
}
4242

43+
/// <summary>
44+
/// http服务启动,初始化代码写在这里
45+
/// </summary>
46+
/// <param name="ctsHttp"></param>
47+
/// <param name="WebManagementPort"></param>
48+
/// <returns></returns>
4349
public async Task StartHttpService(CancellationTokenSource ctsHttp, int WebManagementPort)
4450
{
4551
try
@@ -59,6 +65,12 @@ public async Task StartHttpService(CancellationTokenSource ctsHttp, int WebManag
5965
}
6066
Logger.Debug($"{files.Length} files cached.");
6167

68+
//如果库中没有任何记录,则增加默认用户
69+
if (Dbop.GetLength() < 1)
70+
{
71+
AddUserV2("admin","admin","1");
72+
}
73+
6274
listener.Prefixes.Add($"http://+:{WebManagementPort}/");
6375
Logger.Debug("Listening HTTP request on port " + WebManagementPort.ToString() + "...");
6476
await AcceptHttpRequest(listener, ctsHttp);

src/NSmartProxy/Extension/HttpServerStaticFiles/users.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,13 @@ function delUser() {
3030
return;
3131
}
3232
var ids = [];
33+
var userNames = [];
3334
$('input[name="cbxUserIds"]:checked').each(function () {//遍历每一个名字为interest的复选框,其中选中的执行函数
3435
ids.push($(this).val());//将选中的值添加到数组chk_value中
36+
userNames.push($(this).closest("tr").find(".td_username").html());
3537
});
36-
37-
$.get(basepath + "RemoveUser?id=" + ids.join(','), function (res) {
38+
39+
$.get(basepath + "RemoveUser?id=" + ids.join(',') + '&usernames=' + userNames.join(','), function (res) {
3840
alert('删除成功');
3941
selectUsers();
4042
});
@@ -52,7 +54,7 @@ function selectUsers() {
5254
"<td> <input type='checkbox' name='cbxUserIds' value='" + i + "'></td>" +
5355
"<td>" + i + "</td>" +
5456
"<td>" + user.userId + "</td>" +
55-
"<td>" + user.userName + "</td>" +
57+
"<td class='td_username'>" + user.userName + "</td>" +
5658
"<td>" + user.regTime + "</td>" +
5759
"<td>" + 1 + "</td>" +
5860
"</tr>";

src/NSmartProxy/Extension/HttpServer_APIs.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ public string[] GetLogInfo(string filekey)
5454
[FormAPI]
5555
public string Login(string username, string userpwd)
5656
{
57-
5857
//1.校验
5958
dynamic user = Dbop.Get(username)?.ToDynamic();
6059
if (user == null)
@@ -155,6 +154,12 @@ public void AddUser(string userid, string userpwd, string isAdmin)
155154
Dbop.Insert(long.Parse(userid), user.ToJsonString());
156155
}
157156

157+
/// <summary>
158+
///
159+
/// </summary>
160+
/// <param name="userName"></param>
161+
/// <param name="userpwd"></param>
162+
/// <param name="isAdmin">1代表是 0代表否</param>
158163
[API]
159164
public void AddUserV2(string userName, string userpwd, string isAdmin)
160165
{
@@ -179,14 +184,16 @@ public void AddUserV2(string userName, string userpwd, string isAdmin)
179184

180185

181186
[API]
182-
public void RemoveUser(string userIndex)
187+
public void RemoveUser(string userIndex, string userNames)
183188
{
184189
try
185190
{
186191
var arr = userIndex.Split(',');
192+
var userNameArr = userNames.Split(',');
187193
for (var i = arr.Length - 1; i > -1; i--)
188194
{
189195
Dbop.Delete(int.Parse(arr[i]));
196+
Dbop.DeleteHash(userNameArr[i]);
190197
}
191198

192199
}

0 commit comments

Comments
 (0)