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 { /// /// Use this tool to upload your cards and packs to the Mongo Database (it will overwrite existing data) /// 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 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(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; } }