public async Task UserReadAndWrite() { await LCUser.Login(TestPhone, TestPhone); account = new Account(); LCUser currentUser = await LCUser.GetCurrent(); account.ACL = LCACL.CreateWithOwner(currentUser); account.Balance = 512; await account.Save(); Assert.IsTrue(account.ACL.GetUserReadAccess(currentUser)); Assert.IsTrue(account.ACL.GetUserWriteAccess(currentUser)); LCQuery <LCObject> query = new LCQuery <LCObject>("Account"); LCObject result = await query.Get(account.ObjectId); TestContext.WriteLine(result.ObjectId); Assert.NotNull(result.ObjectId); await LCUser.Logout(); try { await query.Get(account.ObjectId); } catch (LCException e) { Assert.AreEqual(e.Code, 403); } }
/// <summary> /// Bring up to login menu /// </summary> public async void ShowLoginMenu() { if (LCUtils.TryGetLocalSessionToken(out string sessionToken)) { try { LCUser user = await LCManager.Instance.Login(sessionToken); string nickname = user.GetNickname(); if (string.IsNullOrEmpty(nickname)) { ShowNameMenu(); } else { ShowLCMainMenu(); } } catch (LCException e) { Debug.LogError($"{e.Code} - {e.Message}"); ChangePage(loginPanel); } } else { ChangePage(loginPanel); } }
public async Task UpdatePassword() { LCUser currentUser = await LCUser.Login("hello", "world"); await currentUser.UpdatePassword("world", "newWorld"); await currentUser.UpdatePassword("newWorld", "world"); }
public async Task LoginByEmail() { await LCUser.LoginByEmail("*****@*****.**", "world"); LCUser current = await LCUser.GetCurrent(); Assert.NotNull(current.ObjectId); }
public void ClickUser(LCUser target) { if (target != null && target.ObjectId != LCManager.Instance.User.ObjectId) { popup.Show(target); } }
public async Task IsAuthenticated() { LCUser currentUser = await LCUser.Login("hello", "world"); bool isAuthenticated = await currentUser.IsAuthenticated(); TestContext.WriteLine(isAuthenticated); Assert.IsTrue(isAuthenticated); }
async Task <LCUser> SignUp() { LCUser user = new LCUser { Username = Guid.NewGuid().ToString(), Password = "******" }; return(await user.SignUp()); }
public void UpdateItemData(object data) { if (data is LCFriendshipRequest req) { request = req; LCUser user = request["user"] as LCUser; nameText.text = user.GetNickname(); gameObject.SetActive(true); } }
public async Task Query() { await LCUser.Login("game", "play"); LCQuery <LCObject> query = new LCQuery <LCObject>("Account"); LCObject account = await query.Get("5e144525dd3c13006a8f8de2"); TestContext.WriteLine(account.ObjectId); Assert.NotNull(account.ObjectId); }
public async Task Query() { await LCUser.Login(TestPhone, TestPhone); LCQuery <LCObject> query = new LCQuery <LCObject>("Account"); Account queryAccount = (await query.Get(account.ObjectId)) as Account; TestContext.WriteLine(queryAccount.ObjectId); Assert.NotNull(queryAccount.ObjectId); }
async Task <LCFriendshipRequest> GetRequest() { LCUser user = await LCUser.GetCurrent(); LCQuery <LCFriendshipRequest> query = new LCQuery <LCFriendshipRequest>("_FriendshipRequest") .WhereEqualTo("friend", user) .WhereEqualTo("status", "pending"); return(await query.First()); }
public void Delete(long id) { LCUser user = _context.LCUsers.Find(id); if (user != null) { _context.LCUsers.Remove(user); _context.SaveChanges(); } }
public void UpdateItemData(object data) { if (data is MessageEntity messageEntity) { gameObject.SetActive(true); user = messageEntity.User; LCIMTextMessage message = messageEntity.Message as LCIMTextMessage; chatText.text = $"{user.GetNickname()}:{message.Text}"; } }
public async Task Unfollow() { await LCUser.BecomeWithSessionToken(user2.SessionToken); await user2.Unfollow(user1.ObjectId); await LCUser.BecomeWithSessionToken(user3.SessionToken); await user3.Unfollow(user1.ObjectId); }
async Task <ReadOnlyCollection <LCObject> > GetFriends() { LCUser user = await LCUser.GetCurrent(); LCQuery <LCObject> query = new LCQuery <LCObject>("_Followee") .WhereEqualTo("user", user) .WhereEqualTo("friendStatus", true); return(await query.Find()); }
private async void AddMessage(LCIMMessage message) { LCUser user = await LCManager.Instance.GetUser(message.FromClientId); scrollRect.AddItemData(new MessageEntity { User = user, Message = message }); StartCoroutine(Resize()); }
public void UpdateItemData(object data) { if (data is LCObject obj) { friendship = obj; LCUser friend = friendship["followee"] as LCUser; nameText.text = friend.GetNickname(); gameObject.SetActive(true); } }
public void Update(LCUser userParam, string password = null) { LCUser user = _context.LCUsers.Find(userParam.UserID); if (user == null) { throw new AppException("User not found"); } // update username if it has changed if (!string.IsNullOrWhiteSpace(userParam.Username) && userParam.Username != user.Username) { // throw error if the new username is already taken if (_context.LCUsers.Any(u => u.Discrim == userParam.Discrim)) { throw new AppException("Username already exists with that discriminator"); } user.Username = userParam.Username; } // update user properties if provided if (!string.IsNullOrWhiteSpace(userParam.Email)) { if (_context.LCUsers.Any(u => u.NormalizedEmail == userParam.Email.ToUpper())) { throw new AppException("An account already exists with that email"); } user.NormalizedEmail = userParam.Email.ToUpper(); } if (userParam.Discrim != user.Discrim) { if (_context.LCUsers.Any(u => u.Discrim == userParam.Discrim)) { throw new AppException("That discriminator is already taken"); } user.Discrim = userParam.Discrim; } // update password if provided if (!string.IsNullOrWhiteSpace(password)) { byte[] passwordHash, passwordSalt; CreatePasswordHash(password, out passwordHash, out passwordSalt); user.PasswordHash = passwordHash; user.PasswordSalt = passwordSalt; } _context.LCUsers.Update(user); _context.SaveChanges(); }
public override async void Show() { base.Show(); try { LCUser user = await LCUser.GetCurrent(); nameText.text = user.GetNickname(); } catch (LCException e) { LCUtils.LogException(e); } }
public async Task RelateObject() { LCUser user = await LCUser.LoginByMobilePhoneNumber("15101006007", "112358"); LCObject account = new LCObject("Account"); account["user"] = user; await account.Save(); Assert.AreEqual(user.ObjectId, "5e0d5c667d5774006a5c1177"); }
private static void OnLoginNotification(Dictionary <string, object> data) { if (TryGetLiveQuery(data, out LCLiveQuery liveQuery) && data.TryGetValue("object", out object obj) && obj is Dictionary <string, object> dict) { LCObjectData objectData = LCObjectData.Decode(dict); LCUser user = LCUser.GenerateUser(objectData); liveQuery.OnLogin?.Invoke(user); } }
public async Task Login() { await LCUser.Login("hello", "world"); LCUser current = await LCUser.GetCurrent(); Assert.NotNull(current.ObjectId); Assert.IsFalse(current.EmailVerified); Assert.IsFalse(current.MobileVerified); Assert.AreEqual(current.Mobile, "15101006008"); }
public async void OnLoginAnoymouslyClicked() { try { LCUser user = await LCUser.LoginAnonymously(); LCUtils.SaveUser(user); SendMessageUpwards("ShowNameMenu", SendMessageOptions.RequireReceiver); } catch (LCException e) { LCUtils.ShowToast(this, e); } }
public void UpdateItemData(object data) { gameObject.SetActive(true); if (data is LCRanking ranking) { user = ranking.User; rankingText.text = $"第 {ranking.Rank + 1} 名"; nameText.text = user.GetNickname(); scoreText.text = $"分数:{ranking.Value}"; } }
public async Task LoginBySessionToken() { await LCUser.Logout(); string sessionToken = "luo2fpl4qij2050e7enqfz173"; await LCUser.BecomeWithSessionToken(sessionToken); LCUser current = await LCUser.GetCurrent(); Assert.NotNull(current.ObjectId); }
public static bool IsMe(this LCUser user) { if (user == null) { return(false); } if (LCManager.Instance.User == null) { return(false); } return(LCManager.Instance.User.ObjectId == user.ObjectId); }
public async Task AssociateAuthDataWithUnionId() { LCUser currentUser = await LCUser.Login("hello", "world"); string uuid = Guid.NewGuid().ToString(); Dictionary <string, object> authData = new Dictionary <string, object> { { "expires_in", 7200 }, { "openid", uuid }, { "access_token", uuid } }; string unionId = Guid.NewGuid().ToString(); await currentUser.AssociateAuthDataAndUnionId(authData, "qq", unionId); }
public async Task Follow() { await LCUser.BecomeWithSessionToken(user2.SessionToken); Dictionary <string, object> attrs = new Dictionary <string, object> { { "score", 100 } }; await user2.Follow(user1.ObjectId, attrs); await LCUser.BecomeWithSessionToken(user3.SessionToken); await user3.Follow(user2.ObjectId); }
private async void Reload() { LCLeaderboard leaderboard = LCLeaderboard.CreateWithoutData(LeaderboadName); ReadOnlyCollection <LCRanking> rankings = await leaderboard.GetResults(limit : 10, selectUserKeys : new string[] { "nickname" }); foreach (LCRanking ranking in rankings) { LCUser user = ranking.User; Debug.Log($"{user.GetNickname()} : ${ranking.Value}"); } scrollRect.SetItemData(rankings); }
public async Task <object> Hook(string className, string hookName, JsonElement body) { try { LCLogger.Debug($"Hook: {className}#{hookName}"); LCLogger.Debug(body.ToString()); LCEngine.CheckHookKey(Request); string classHookName = GetClassHookName(className, hookName); if (ClassHooks.TryGetValue(classHookName, out MethodInfo mi)) { Dictionary <string, object> data = LCEngine.Decode(body); LCObjectData objectData = LCObjectData.Decode(data["object"] as Dictionary <string, object>); objectData.ClassName = className; LCObject obj = LCObject.Create(className); obj.Merge(objectData); // 避免死循环 if (hookName.StartsWith("before")) { obj.DisableBeforeHook(); } else { obj.DisableAfterHook(); } LCEngine.InitRequestContext(Request); LCUser user = null; if (data.TryGetValue("user", out object userObj) && userObj != null) { user = new LCUser(); user.Merge(LCObjectData.Decode(userObj as Dictionary <string, object>)); LCEngineRequestContext.CurrentUser = user; } LCObject result = await LCEngine.Invoke(mi, new object[] { obj }) as LCObject; if (result != null) { return(LCCloud.Encode(result)); } } return(body); } catch (Exception e) { return(StatusCode(500, e.Message)); } }