public async Task <IActionResult> Edit(int id, [Bind("Id,Email,Name,Description")] ForumMember forumMember)
        {
            if (id != forumMember.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(forumMember);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ForumMemberExists(forumMember.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(forumMember));
        }
        public async Task <IActionResult> Create([Bind("Id,Email,Name,Description")] ForumMember forumMember)
        {
            if (ModelState.IsValid)
            {
                _context.Add(forumMember);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(forumMember));
        }
Beispiel #3
0
 /// <summary>
 /// Get a member by the member Id
 /// </summary>
 /// <param name="memberid"></param>
 /// <returns></returns>
 public static ForumMember ReturnMember(int?memberid)
 {
     if (memberid != null)
     {
         ForumMember cmem;
         if (!CacheHelper.Get(CacheHelper.CacheNameMember(memberid), out cmem))
         {
             cmem = new ForumMember(memberid);
             CacheHelper.Add(cmem, CacheHelper.CacheNameMember(memberid));
         }
         return(cmem);
     }
     return(null);
 }
Beispiel #4
0
        private void GetMemberDetails()
        {
            // Get the member id
            int?m = null;

            if (Request.QueryString["mem"] != null)
            {
                m = Convert.ToInt32(Request.QueryString["mem"]);
            }

            // if its not null then get the member details
            if (m != null)
            {
                // Get the member whos profile this is
                ProfileMember = MembershipHelper.ReturnMember(m);
            }
        }
Beispiel #5
0
        /// <summary>
        /// Pokazuje okno UI wyboru postaci
        /// </summary>
        /// <param name="player"></param>
        /// <param name="userId"></param>
        public static async void ShowPlayerCharacters(Client player, int userId)
        {
            using (Database.Database db = new Database.Database())
            {
                List <Character> playerCharacters =
                    await db.Characters.Where(t => !t.Blocked && t.MemberId == userId).ToListAsync();

                if (playerCharacters.Count == 0)
                {
                    Ui.ShowError(player, "Nie posiadasz żadnych postaci :<");
                    player.Kick();
                    return;
                }

                ForumMember forumMember = db.ForumMembers.FirstOrDefault(t => t.MemberId == userId);

                List <LoginScreenCharacter> serializableCharacters = new List <LoginScreenCharacter>();
                foreach (Character entry in playerCharacters)
                {
                    serializableCharacters.Add(new LoginScreenCharacter
                    {
                        Id     = entry.Id,
                        Name   = $"{entry.Name} {entry.Lastname}",
                        Online = Global.GetFormattedTime(entry.OnlineTime)
                    });
                }

                NAPI.ClientEvent.TriggerClientEvent(player, "client.choosechar.show",
                                                    JsonConvert.SerializeObject(serializableCharacters),
                                                    forumMember != null ? forumMember.Username : "******"
                                                    );

                // player.TriggerEvent("client.choosechar.show",
                //    JsonConvert.SerializeObject(serializableCharacters, Formatting.None), rankName,
                //    player.GetData("player.vPoints"), Account.GetAllPlayers().Count, 0 /* TODO */);
                // player.TriggerEvent("client.login.LoginSuccess");
                player.TriggerEvent("client.ui.loader", false);
            }
        }
        public async void Event_OnPlayerTriedToLogin(Client player, string username, string password)
        {
            player.TriggerEvent("client.ui.loader", true);
            Character charData = Account.GetPlayerData(player);

            if (charData != null)
            {
                Ui.ShowError(player, "Jesteś już zalogowany.");
                return;
            }

            using (Database.Database db = new Database.Database())
            {
                ForumMember globalMember = await db.ForumMembers.FirstOrDefaultAsync(t => t.Username == username);

                if (globalMember != null)
                {
                    if (Auth.AuthUser(username, password))
                    {
                        Ui.ShowInfo(player,
                                    $"Witaj, {globalMember.Username}! Zalogowałeś się pomyślnie. Laduję Twoje postacie...");
                        player.TriggerEvent("client.ui.loader", true);


                        player.SetData("player.globalId", globalMember.MemberId);
                        player.SetData("player.globalName", globalMember.Username);
                        player.SetData("player.adminLevel", globalMember.AdminLevel);
                        player.SetData("player.vPoints", globalMember.VisualPoints);
                        player.SetData("player.donateTime", globalMember.DonateTime);
                        player.SetData("player.adminFlags", globalMember.AdminFlags);

                        await db.LoginLogs.AddAsync(new LoginLog
                        {
                            MemberId = globalMember.MemberId,
                            Ip       = player.Address,
                            Serial   = player.Serial,
                            Success  = true,
                            Time     = Global.GetTimestamp()
                        });

                        await db.SaveChangesAsync();

                        Library.ShowPlayerCharacters(player, globalMember.MemberId);
                    }
                    else
                    {
                        Ui.ShowError(player, "Podano niepoprawne dane logowania.");
                        player.TriggerEvent("client.login.BadLogin");
                        player.TriggerEvent("client.ui.loader", false);
                        await db.LoginLogs.AddAsync(new LoginLog
                        {
                            MemberId = globalMember.MemberId,
                            Ip       = player.Address,
                            Success  = false,
                            Serial   = player.Serial,
                            Time     = Global.GetTimestamp()
                        });

                        await db.SaveChangesAsync();
                    }
                }
                else
                {
                    Ui.ShowError(player, "Podano niepoprawne dane logowania.");
                    player.TriggerEvent("client.login.BadLogin");
                    player.TriggerEvent("client.ui.loader", false);
                }
            }
        }
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl      = returnUrl ?? Url.Content("~/");
            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
            if (ModelState.IsValid)
            {
                var user = new IdentityUser {
                    UserName = Input.Email, Email = Input.Email
                };
                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    var forumMemberAccount = new ForumMember
                    {
                        Email       = user.Email,
                        Name        = Input.Name,
                        Description = Input.Description
                    };

                    dataContext.Add(forumMemberAccount);

                    dataContext.SaveChanges();
                    var roleExistsResult = await _roleManager.RoleExistsAsync("forum_member");

                    if (!roleExistsResult)
                    {
                        var roleReuslt = await _roleManager.CreateAsync(new IdentityRole("forum_member"));

                        if (roleReuslt.Succeeded)
                        {
                            await _userManager.AddToRoleAsync(user, "forum_member");
                        }
                    }
                    else
                    {
                        await _userManager.AddToRoleAsync(user, "forum_member");
                    }



                    _logger.LogInformation("User created a new account with password.");

                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
                    var callbackUrl = Url.Page(
                        "/Account/ConfirmEmail",
                        pageHandler: null,
                        values: new { area = "Identity", userId = user.Id, code = code },
                        protocol: Request.Scheme);

                    await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                                                      $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                    if (_userManager.Options.SignIn.RequireConfirmedAccount)
                    {
                        return(RedirectToPage("RegisterConfirmation", new { email = Input.Email }));
                    }
                    else
                    {
                        await _signInManager.SignInAsync(user, isPersistent : false);

                        return(LocalRedirect(returnUrl));
                    }
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            // If we got this far, something failed, redisplay form
            return(Page());
        }
Beispiel #8
0
        /// <summary>
        /// Laduje do pamięci dane gracza
        /// </summary>
        /// <param name="player"></param>
        /// <param name="charId"></param>
        /// <returns></returns>
        public static async Task <Character> LoadPlayerData(Client player, int charId)
        {
            using (Database.Database db = new Database.Database())
            {
                Character charInfo = await db.Characters.FirstOrDefaultAsync(t => t.Id == charId);

                if (charInfo == null)
                {
                    return(null);
                }
                ForumMember memberData =
                    await db.ForumMembers.FirstOrDefaultAsync(t => t.MemberId == charInfo.MemberId);

                charInfo.AdminLevel          = 0;
                charInfo.HasAdminDuty        = false;
                charInfo.HasMask             = false;
                charInfo.HasCustomName       = false;
                charInfo.CustomName          = null;
                charInfo.AdminPerm           = new List <object>();
                charInfo.LastWhisper         = null;
                charInfo.WhisperBlock        = false;
                charInfo.Cuff                = null;
                charInfo.RadioBlock          = false;
                charInfo.HasInvisibleEnabled = false;
                charInfo.ServerId            = player.Value;
                charInfo.ServerData          = new Dictionary <ServerData, object>();
                charInfo.IsCrouching         = false;
                charInfo.Tattoos             = new List <Tattoo>();
                charInfo.SyncedTattoos       = new List <int>();
                charInfo.UsedWeapon          = null;
                charInfo.PlayerHandle        = player;
                charInfo.AnimPlayer          = null;
                charInfo.LoadDrugs();

                List <Database.Models.Tattoo> tattoos =
                    await db.Tattoos.Where(t => t.CharId == charInfo.Id).ToListAsync();

                foreach (Database.Models.Tattoo entry in tattoos)
                {
                    charInfo.SyncedTattoos.Add(entry.TattooId);
                }

                WalkingStyle charWalkingStyle =
                    await db.WalkingStyles.FirstOrDefaultAsync(t => t.Id == charInfo.WalkingStyle);

                if (charWalkingStyle == default(WalkingStyle))
                {
                    charInfo.WalkingStyleAnim = null;
                }
                else
                {
                    charInfo.WalkingStyleAnim = charWalkingStyle.AnimName;
                    if (charInfo.WalkingStyleAnim.Length < 2)
                    {
                        charInfo.WalkingStyleAnim = null;
                    }
                }

                try
                {
                    charInfo.AdminPerm = JsonConvert.DeserializeObject <List <object> >(memberData.AdminFlags);
                }
                catch (Exception e)
                {
                    Log.ConsoleLog("ACCOUNT", $"(USER {charInfo.Name} {charInfo.Lastname}) {e.Message}",
                                   LogType.Error);
                    charInfo.AdminPerm = new List <object>();
                }


                CharactersList.Add(charInfo.PlayerHandle.Value, charInfo);

                return(charInfo);
            }
        }