129 lines
3.5 KiB
C#
129 lines
3.5 KiB
C#
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using System.IO;
|
||
using System.Text.RegularExpressions;
|
||
using System.Threading.Tasks;
|
||
using UnityEngine;
|
||
using UnityEngine.UI;
|
||
using TcgEngine.UI;
|
||
|
||
namespace TcgEngine
|
||
{
|
||
/// <summary>
|
||
/// Use this tool to upload your cards and packs to the Mongo Database (it will overwrite existing data)
|
||
/// </summary>
|
||
|
||
public class ChangePermission : MonoBehaviour
|
||
{
|
||
public string username = "admin";
|
||
|
||
[Header("Login")]
|
||
public InputField username_txt;
|
||
public InputField password_txt;
|
||
|
||
[Header("Change Permission")]
|
||
public UIPanel permission_panel;
|
||
public InputField target_user_txt;
|
||
public InputField target_perm_txt;
|
||
public Text error;
|
||
|
||
private string logged_user;
|
||
|
||
void Start()
|
||
{
|
||
username_txt.text = username;
|
||
error.text = "";
|
||
}
|
||
|
||
private async void Login(string user, string pass)
|
||
{
|
||
LoginResponse res = await ApiClient.Get().Login(user, pass);
|
||
if (res.success && res.permission_level >= 10)
|
||
{
|
||
logged_user = user;
|
||
permission_panel.Show();
|
||
}
|
||
else if (res.success)
|
||
{
|
||
error.text = "Not an admin user";
|
||
}
|
||
else
|
||
{
|
||
error.text = res.error;
|
||
}
|
||
}
|
||
|
||
private async Task<string> GetUserID(string tuser)
|
||
{
|
||
string url = ApiClient.ServerURL + "/users/" + tuser;
|
||
WebResponse res = await ApiClient.Get().SendGetRequest(url);
|
||
Debug.LogError($"ID:{res.data}");
|
||
UserData udata = ApiTool.JsonToObject<UserData>(res.data);
|
||
if (!res.success)
|
||
error.text = res.error;
|
||
|
||
return res.success ? udata.id : null;
|
||
}
|
||
|
||
private async void SetPermission(string tuser, int permission)
|
||
{
|
||
string user_id = await GetUserID(tuser);
|
||
if (user_id == null)
|
||
return;
|
||
|
||
ChangePermissionRequest req = new ChangePermissionRequest();
|
||
req.permission_level = permission;
|
||
|
||
string url = ApiClient.ServerURL + "/users/permission/edit/" + user_id;
|
||
string json = ApiTool.ToJson(req);
|
||
WebResponse res = await ApiClient.Get().SendPostRequest(url, json);
|
||
|
||
if (!res.success)
|
||
error.text = res.error;
|
||
|
||
if (res.success)
|
||
{
|
||
error.text = "Success!";
|
||
error.color = Color.green;
|
||
}
|
||
}
|
||
|
||
public void OnClickLogin()
|
||
{
|
||
if (string.IsNullOrEmpty(username_txt.text))
|
||
return;
|
||
|
||
if (string.IsNullOrEmpty(password_txt.text))
|
||
return;
|
||
|
||
error.text = "";
|
||
error.color = Color.red;
|
||
Login(username_txt.text, password_txt.text);
|
||
}
|
||
|
||
public void OnClickUpdate()
|
||
{
|
||
if (string.IsNullOrEmpty(target_user_txt.text))
|
||
return;
|
||
|
||
bool success = int.TryParse(target_perm_txt.text, out int perm);
|
||
if (!success)
|
||
return;
|
||
|
||
if (logged_user == target_user_txt.text)
|
||
return; //Prevent changing yourself
|
||
|
||
error.text = "";
|
||
error.color = Color.red;
|
||
SetPermission(target_user_txt.text, perm);
|
||
}
|
||
}
|
||
|
||
[System.Serializable]
|
||
public class ChangePermissionRequest
|
||
{
|
||
public int permission_level;
|
||
}
|
||
|
||
}
|