예제 #1
0
        private async Task <TokenDto> GenerateJwtToken(string email, UserMod user)
        {
            var claims = new List <Claim>
            {
                new Claim(JwtRegisteredClaimNames.Sub, email),
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                new Claim(ClaimTypes.NameIdentifier, user.Id)
            };

            var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(
                                                   configuration["JwtKey"]));
            var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
            //recommended is 5 mins
            var expires = DateTime.Now.AddDays(
                Convert.ToDouble(configuration["JwtExpireDays"]));

            var token = new JwtSecurityToken(
                configuration["JwtIssuer"],
                configuration["JwtIssuer"],
                claims,
                expires: expires,
                signingCredentials: creds
                );

            var response = new TokenDto
            {
                Key = new JwtSecurityTokenHandler().WriteToken(token),
                Id  = user.Id,
            };

            return(response);
        }
예제 #2
0
 public ActionResult Register(UserMod user)
 {
     dBContext      = new MongoConnect();
     userCollection = dBContext.database.GetCollection <UserMod>("users");
     userCollection.InsertOne(user);
     return(RedirectToAction("Login", "Home"));
 }
        public override void OnLoadData()
        {
            base.OnLoadData();
            if (ToolManager.instance.m_properties.m_mode != ItemClass.Availability.Game)
            {
                return;
            }

            if (serializableDataManager.EnumerateData().Contains(GROWSTATE_ID))
            {
                var growStateData = serializableDataManager.LoadData(GROWSTATE_ID);
                using (var ms = new MemoryStream(growStateData)) {
                    var s = DataSerializer.Deserialize <GrowState>(ms, DataSerializer.Mode.Memory);
                }
            }

            if (UserMod.IsModEnabled(1873351912UL, "Tree Precision"))
            {
                return;
            }
            if (!serializableDataManager.EnumerateData().Contains(PRECISION_ID))
            {
                return;
            }
            var data = serializableDataManager.LoadData(PRECISION_ID);

            using (var ms = new MemoryStream(data)) {
                var s = DataSerializer.Deserialize <Precision>(ms, DataSerializer.Mode.Memory);
            }
        }
예제 #4
0
 public CompressOptions(short sliderLevel, QualitiLevelCheckBox qLevelCheckBox, UserMod userMod, OutputMod outMode)
 {
     SliderLevel          = sliderLevel;
     QualitiLevelCheckBox = qLevelCheckBox;
     UserMod   = userMod;
     OutputMod = outMode;
 }
예제 #5
0
 private void ResetButton_eventClicked(UIComponent component, UIMouseEventParameter eventParam)
 {
     Brush.BrushOptions options = Brush.BrushOptions.Default();
     UserMod.Settings.SelectedBrush.Options = options;
     UpdateBindings(options);
     autoDensityCheckBox.isChecked = options.AutoDensity;
     UserMod.SaveSettings();
 }
예제 #6
0
 private void ProbabilityTextField_eventLostFocus(UIComponent component, UIFocusEventParameter eventParam)
 {
     if (float.TryParse(probabilityTextField.text, out float value))
     {
         probabilitySlider.eventValueChanged -= ProbabilitySlider_eventValueChanged;
         probabilitySlider.value              = value;
         probabilitySlider.eventValueChanged += ProbabilitySlider_eventValueChanged;
         SetProbability(value, Prefab);
         UserMod.SaveSettings();
     }
 }
        private void SelectBitmapButton_eventClicked(UIComponent component, UIMouseEventParameter eventParam)
        {
            bool shapeSelectorVisible = owner.ToggleBrushShapes();

            selectBitmapButton.normalBgSprite = selectBitmapButton.focusedBgSprite = shapeSelectorVisible ? ResourceLoader.PaintBrushFocused : ResourceLoader.PaintBrushNormal;
            if (shapeSelectorVisible)
            {
                owner.KeepWithinScreen();
            }
            UserMod.Settings.BrushShapesOpen = shapeSelectorVisible;
            UserMod.SaveSettings();
        }
예제 #8
0
        private void ToggleEditButton_eventClicked(UIComponent component, UIMouseEventParameter eventParam)
        {
            bool editVisible = owner.ToggleBrushEdit();

            toggleEditButton.normalBgSprite = toggleEditButton.focusedBgSprite = editVisible ? ResourceLoader.SettingsDropboxFocused : ResourceLoader.SettingsDropbox;
            if (editVisible)
            {
                owner.ClampToScreen();
            }
            UserMod.Settings.BrushEditOpen = editVisible;
            UserMod.SaveSettings();
        }
        private void ToggleOptionsButton_eventClicked(UIComponent component, UIMouseEventParameter eventParam)
        {
            bool optionsVisible = owner.ToggleBrushOptions();

            toggleOptionsButton.normalBgSprite = toggleOptionsButton.focusedBgSprite = optionsVisible ? ResourceLoader.OptionsDropboxFocused : ResourceLoader.OptionsDropbox;
            if (optionsVisible)
            {
                owner.KeepWithinScreen();
            }
            UserMod.Settings.BrushOptionsOpen = optionsVisible;
            UserMod.SaveSettings();
        }
예제 #10
0
        private async Task <TokenDto> GenerateJwtToken(string email,
                                                       UserMod user)
        {
            var roles = await userManager.GetRolesAsync(user);

            var role = roleManager.Roles.SingleOrDefault(r => r.Name == roles.SingleOrDefault());

            var claims = new List <Claim>
            {
                new Claim(JwtRegisteredClaimNames.Sub, email),
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                new Claim(ClaimTypes.NameIdentifier, user.Id),
                new Claim(ClaimTypes.Role, role.Name)
            };
            var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(
                                                   configuration["JwtKey"]));
            var creds = new SigningCredentials(key,
                                               SecurityAlgorithms.HmacSha256);
            var expires = DateTime.Now.AddDays(
                Convert.ToDouble(configuration["JwtExpireDays"]));

            var token = new JwtSecurityToken(
                configuration["JwtIssuer"],
                configuration["JwtIssuer"],
                claims,
                expires: expires,
                signingCredentials: creds);



            var response = new TokenDto
            {
                Token    = new JwtSecurityTokenHandler().WriteToken(token),
                userInfo = new UserInfoDto
                {
                    Email  = user.Email,
                    Role   = Convert.ToInt32(role.Id),
                    Id     = user.Id,
                    Active = true
                },
                message = "Logged In Successfully"
            };

            return(response);
        }
예제 #11
0
 public ActionResult AddUser(UserMod user)
 {
     if (User.Identity.IsAuthenticated)
     {
         try
         {
             if (user != null && !(db.findUser(user.Username.Trim())))
             {
                 byte[] salt;
                 byte[] pwd;
                 bool   result = false;
                 generetePwd.SaltAndHashPassword(user.Password.Trim(), out salt, out pwd);
                 UserMod newUser = new UserMod(user.Firstname, user.Lastname, user.Username, user.Email, user.UserTypeId)
                 {
                     Id           = user.Id,
                     SaltHash     = salt,
                     PasswordHash = pwd
                 };
                 if (user.Id == 0)
                 {
                     result = db.insertUser(newUser);
                 }
                 else
                 {
                     result = db.updateUser(newUser);
                 }
                 return(RedirectToAction("GetUser"));
             }
             else
             {
                 return(Content("Pojalusta povtorite dobavlenie"));
             }
         }
         catch (Exception e)
         {
             throw new Exception(e.Message);
         }
     }
     else
     {
         return(RedirectToAction("Login", "Logon"));
     }
 }
예제 #12
0
        public async Task <IActionResult> Register([FromBody] RegisterDto model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = new UserMod
            {
                UserName    = model.Email,
                FirstName   = model.FirstName,
                LastName    = model.LastName,
                Email       = model.Email,
                Skill       = model.Skill,
                Timing      = model.Time,
                Experience  = model.Experience,
                PhoneNumber = model.PhoneNumber,
                IsActive    = true
            };

            var result = await userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                //role
                var roleName = roleManager.Roles.FirstOrDefault(
                    r => r.Id == model.Role.ToString()).NormalizedName;

                var result1 = await userManager.AddToRoleAsync(user, roleName);

                if (result1.Succeeded)
                {
                    //  return Created("Registered", model.Email);
                    var response = await GenerateJwtToken(model.Email, user);

                    return(Ok(response));
                }
                return(BadRequest(result1.Errors));
            }
            return(BadRequest(result.Errors));
        }
예제 #13
0
        // helper methods

        private string generateJwtToken(UserMod user)
        {
            // generate token that is valid for 1 day
            var tokenHandler    = new JwtSecurityTokenHandler();
            var key             = Encoding.ASCII.GetBytes(_appSettings.JwtSecret);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim("user_email", user.Email.ToString()),
                    new Claim("user_id", user.Id.ToString()),
                    // new Claim(ClaimTypes.Role, "admin"),
                }),
                Expires            = DateTime.UtcNow.AddDays(1),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature),
                Issuer             = _appSettings.JwtIssuer
            };
            var token = tokenHandler.CreateToken(tokenDescriptor);

            return(tokenHandler.WriteToken(token));
        }
예제 #14
0
        public async Task <IActionResult> Register([FromBody] RegisterDto model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = new UserMod
            {
                Firstname         = model.Firstname,
                Lastname          = model.Lastname,
                UserName          = model.Email,
                Email             = model.Email,
                PhoneNumber       = model.Contactnumber,
                YearOfExperience  = model.YearOfExperience,
                TrainerTechnology = model.TrainerTechnology
            };

            var result = await userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                //role
                var roleName = roleManager.Roles.FirstOrDefault(
                    r => r.Id == model.Role.ToString()).NormalizedName;

                var result1 = await userManager.AddToRoleAsync(user, roleName);

                if (result1.Succeeded)
                {
                    //  return Created("Registered", model.Email);
                    //var response = await GenerateJwtToken(model.Email, user);
                    var response = new { Message = "Registered Successfully" };
                    return(Ok(response));
                }
                return(BadRequest(result1.Errors));
            }
            return(BadRequest(result.Errors));
        }
        public override void OnSaveData()
        {
            base.OnSaveData();
            if (ToolManager.instance.m_properties.m_mode != ItemClass.Availability.Game)
            {
                return;
            }

            using (var ms = new MemoryStream()) {
                DataSerializer.Serialize(ms, DataSerializer.Mode.Memory, VERSION, new GrowState());
                var data = ms.ToArray();
                serializableDataManager.SaveData(GROWSTATE_ID, data);
            }

            if (UserMod.IsModEnabled(1873351912UL, "Tree Precision"))
            {
                return;
            }
            using (var ms = new MemoryStream()) {
                DataSerializer.Serialize(ms, DataSerializer.Mode.Memory, VERSION, new Precision());
                var data = ms.ToArray();
                serializableDataManager.SaveData(PRECISION_ID, data);
            }
        }
예제 #16
0
 private void RenameBrushTextField_eventLostFocus(UIComponent component, UIFocusEventParameter eventParam)
 {
     UserMod.SaveSettings();
 }
예제 #17
0
 private void ProbabilitySlider_eventMouseUp(UIComponent component, UIMouseEventParameter eventParam)
 {
     SetProbability(probabilitySlider.value, Prefab);
     UserMod.SaveSettings();
 }
예제 #18
0
 public void SavePanelPosition()
 {
     UserMod.Settings.PanelPosX = parent.absolutePosition.x;
     UserMod.Settings.PanelPosY = parent.absolutePosition.y;
     UserMod.SaveSettings();
 }
예제 #19
0
 private void AutoDensityCheckBox_eventCheckChanged(UIComponent component, bool value)
 {
     UserMod.Settings.SelectedBrush.Options.AutoDensity = value;
     densityLabel.isEnabled = densitySlider.isEnabled = !value;
     UserMod.SaveSettings();
 }
예제 #20
0
 private void DensitySlider_eventMouseUp(UIComponent component, UIMouseEventParameter eventParam)
 {
     UserMod.SaveSettings();
 }