public async Task RegisterAsync(RegisterModel registerModel)
        {
            var result = await _userManager.CreateAsync(new User
            {
                Username = registerModel.Username,
                Email    = registerModel.Email,
                Claims   = new List <BaseClaim>
                {
                    StandardClaims.Sub(registerModel.Username),
                    StandardClaims.FullName(registerModel.Username),
                    StandardClaims.AccessAppSelectorPage
                }
            }, registerModel.Password);

            if (!result.Succeeded)
            {
                if (result.Errors.Any(a => a.Code == "DuplicateUserName"))
                {
                    throw new IdentityException(ErrorCodes.UsernameHasBeenRegistered);
                }
                else
                {
                    throw new IdentityException(new Core.Exceptions.ErrorCode {
                        MessageCode = result.Errors.First().Code, MessageContent = result.Errors.First().Description
                    });
                }
            }
        }
示例#2
0
        public User GenerateUser()
        {
            string username = GenerateUniqueUserName();

            return(new User
            {
                Id = DataUtil.GenerateUniqueId(),
                Username = username,
                NormalizedUserName = username.ToUpper(),
                Domain = string.Empty,
                PasswordHash = "AQAAAAEAACcQAAAAEBhhMYTL5kwYqXheHSdarA/+vleSI07yGkTKNw1bb1jrTlYnBZK1CZ+zdHnqWwLLDA==",
                Email = username + "@portal.com",
                NormalizedEmail = username.ToUpper() + "@PORTAL.COM",
                IsConfirmedEmail = true,
                SecurityStamp = "7YHYVBYWLTYC4EAPVRS2SWX2IIUOZ3XM",
                AccessFailedCount = 0,
                IsLockoutEnabled = false,
                LockoutEndDate = DateTime.UtcNow,
                Roles = new List <string>
                {
                    "SuperAdmin"
                },
                Claims = new List <BaseClaim>
                {
                    StandardClaims.AccessAppSelectorPage,
                    StandardClaims.Sub("5ce287ee569d6f23e8504cef"),
                    StandardClaims.UserId("5ce287ee569d6f23e8504cef"),
                    StandardClaims.Name(username)
                }
            });
        }
示例#3
0
        public async Task <IdentityResult> CreateAsync(User user, CancellationToken cancellationToken)
        {
            cancellationToken.ThrowIfCancellationRequested();
            user.Id = !string.IsNullOrEmpty(user.Id) ? user.Id : DataUtil.GenerateUniqueId();
            user.Claims.Add(StandardClaims.UserId(user.Id));
            await _userRepository.AddAsync(user);

            return(IdentityResult.Success);
        }
示例#4
0
        public Task <IList <Claim> > GetClaimsAsync(User user, CancellationToken cancellationToken)
        {
            var userClaims = new List <BaseClaim>();

            // Add user specific claims
            userClaims.AddRange(user.Claims);

            // Add roles
            userClaims.AddRange(StandardClaims.TransformRoleClaims(user.Roles));

            return(Task.FromResult((IList <Claim>)userClaims.Select(a => a.ToClaim()).ToList()));
        }
示例#5
0
        private void CreateSomeDummyData()
        {
            MongoClient             mongoClient    = new MongoClient(MongoDatabaseOptions.ConnectionString);
            IMongoDatabase          mongoDatabase  = mongoClient.GetDatabase(MongoDatabaseOptions.Datasource);
            IMongoCollection <Role> roleCollection = mongoDatabase.GetCollection <Role>("roles");
            IMongoCollection <User> userCollection = mongoDatabase.GetCollection <User>("users");
            Role superAdminRole = new Role
            {
                Id             = "5c06a15e4cc9a850bca44488",
                Name           = "SuperAdmin",
                NormalizedName = "SUPERADMIN",
                DisplayName    = "Super Admin",
                Claims         = new List <BaseClaim>
                {
                    StandardClaims.AccessCoreApp("5c162e9005924c1c741bfdc2")
                }
            };

            // Pass: @Dm1n!
            User adminAccount = new User
            {
                Id                 = "5ce287ee569d6f23e8504cef",
                Username           = "******",
                NormalizedUserName = "******",
                Domain             = string.Empty,
                PasswordHash       = "AQAAAAEAACcQAAAAEBhhMYTL5kwYqXheHSdarA/+vleSI07yGkTKNw1bb1jrTlYnBZK1CZ+zdHnqWwLLDA==",
                Email              = "*****@*****.**",
                NormalizedEmail    = "*****@*****.**",
                IsConfirmedEmail   = true,
                SecurityStamp      = "7YHYVBYWLTYC4EAPVRS2SWX2IIUOZ3XM",
                AccessFailedCount  = 0,
                IsLockoutEnabled   = false,
                LockoutEndDate     = DateTime.UtcNow,
                Roles              = new List <string>
                {
                    "SuperAdmin"
                },
                Claims = new List <BaseClaim>
                {
                    StandardClaims.AccessAppSelectorPage,
                    StandardClaims.Sub("5ce287ee569d6f23e8504cef"),
                    StandardClaims.UserId("5ce287ee569d6f23e8504cef"),
                    StandardClaims.Name("admin")
                }
            };

            roleCollection.InsertOne(superAdminRole);
            userCollection.InsertOne(adminAccount);
        }
示例#6
0
        public Role GenerateRole()
        {
            string roleName = GenerateUniqueRoleName();

            return(new Role
            {
                Id = DataUtil.GenerateUniqueId(),
                Name = roleName,
                NormalizedName = roleName.ToUpper(),
                DisplayName = roleName,
                Claims = new List <BaseClaim>
                {
                    StandardClaims.AccessCoreApp("5c162e9005924c1c741bfdc2")
                }
            });
        }
示例#7
0
        public Task Upgrade(IVersionContext versionContext)
        {
            var superAdminRole = new Role
            {
                Id             = "5c06a15e4cc9a850bca44488",
                Name           = Roles.SuperAdmin,
                NormalizedName = Roles.SuperAdmin.ToUpper(System.Globalization.CultureInfo.CurrentCulture),
                DisplayName    = "Super Admin",
                Claims         = new List <BaseClaim>
                {
                    StandardClaims.AccessCoreApp(Constants.CoreAppId)
                }
            };

            // Pass: @Dm1n!
            var adminAccount = new User
            {
                Id                 = "5ce287ee569d6f23e8504cef",
                Username           = "******",
                NormalizedUserName = "******",
                Domain             = string.Empty,
                PasswordHash       = "AQAAAAEAACcQAAAAEBhhMYTL5kwYqXheHSdarA/+vleSI07yGkTKNw1bb1jrTlYnBZK1CZ+zdHnqWwLLDA==",
                Email              = "*****@*****.**",
                NormalizedEmail    = "*****@*****.**",
                IsConfirmedEmail   = true,
                SecurityStamp      = "7YHYVBYWLTYC4EAPVRS2SWX2IIUOZ3XM",
                AccessFailedCount  = 0,
                IsLockoutEnabled   = false,
                LockoutEndDate     = DateTime.UtcNow,
                Roles              = new List <string>
                {
                    Roles.SuperAdmin
                },
                Claims = new List <BaseClaim>
                {
                    StandardClaims.AccessAppSelectorPage,
                    StandardClaims.Sub("admin"),
                    StandardClaims.UserId("5ce287ee569d6f23e8504cef"),
                    StandardClaims.FullName("Super Admin")
                }
            };

            versionContext.InsertData(adminAccount);
            versionContext.InsertData(superAdminRole);
            return(Task.CompletedTask);
        }
        public async Task <IActionResult> UpdateProfiles([FromBody] ProfileModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            await _identityServiceProvider.AddClaimsAsync(
                _httpContextAccessor.HttpContext.User.Identity.Name,
                new System.Collections.Generic.List <Identity.Entities.BaseClaim>
            {
                StandardClaims.FullName(model.FullName),
                StandardClaims.Avatar(model.Avatar)
            });

            return(NoContent());
        }
示例#9
0
        public async Task Upgrade(IVersionContext versionContext)
        {
            var siteAdminRole = new Role
            {
                Id             = "5f6074fbf7a6d360d8a908e7",
                Name           = Roles.SiteAdmin,
                DisplayName    = "Site Admin",
                NormalizedName = "SITEADMIN",
                Claims         = new List <BaseClaim>
                {
                    StandardClaims.AccessCoreApp(Constants.CMS_APP_ID)
                }
            };

            var superAdmin = await _userRepository.FindByNormalizedUsername("admin".ToUpper());

            superAdmin.Roles.Add(Roles.SiteAdmin);
            await _userRepository.UpdateAsync(superAdmin.Id, superAdmin);

            versionContext.InsertData(siteAdminRole);
        }
示例#10
0
        public async Task Upgrade(IVersionContext versionContext)
        {
            var adminRole = await _roleRepository.GetByNameAsync(Roles.Admin);

            var developerRole = await _roleRepository.GetByNameAsync(Roles.Developer);

            adminRole.Claims.AddRange(
                StandardClaims.GenerateClaimsByPages(
                    new string[] {
                "app-installation",
                "app-package"
            }));
            developerRole.Claims.AddRange(
                StandardClaims.GenerateClaimsByPages(
                    new string[] {
                "app-installation",
                "app-package"
            }));

            await _roleRepository.UpdateAsync(adminRole.Id, adminRole);

            await _roleRepository.UpdateAsync(developerRole.Id, developerRole);
        }
示例#11
0
        public Task Upgrade(IVersionContext versionContext)
        {
            var adminRole = new Role
            {
                Id             = "5e6b506e52605e513cd02265",
                Name           = Roles.Admin,
                NormalizedName = Roles.Admin.ToUpper(System.Globalization.CultureInfo.CurrentCulture),
                DisplayName    = Roles.Admin,
                Claims         = new List <BaseClaim>
                {
                    StandardClaims.AccessCoreApp(Constants.CoreAppId)
                }
            };

            adminRole.Claims.AddRange(StandardClaims
                                      .GenerateClaimsByPages(new string[]
            {
                "apps-management",
                "databases-management",
                "pages-management",
                "page-builder",
                "menus",
                "role-claims",
                "dynamic-list-builder",
                "roles-management",
                "users-management",
                "database-form",
                "app-form",
                "dynamic-list-management",
                "standard-list-management",
                "role-form",
                "add-user-form",
                "user-form",
                "charts-management",
                "services-monitor",
                "service-logs",
                "service-dashboard",
                "backup-management",
                "chart-builder",
                "backup-builder",
                "backup-upload",
                "backup-restore",
                "user-info",
                "localization-builder",
                "localization-management"
            }));

            var developerRole = new Role
            {
                Id             = "5e6b506e52605e513cd02266",
                Name           = Roles.Developer,
                NormalizedName = Roles.Developer.ToUpper(System.Globalization.CultureInfo.CurrentCulture),
                DisplayName    = Roles.Developer,
                Claims         = new List <BaseClaim>
                {
                    StandardClaims.AccessCoreApp(Constants.CoreAppId)
                }
            };

            developerRole.Claims.AddRange(StandardClaims
                                          .GenerateClaimsByPages(new string[]
            {
                "pages-management",
                "page-builder",
                "dynamic-list-builder",
                "dynamic-list-management",
                "standard-list-management",
                "charts-management",
                "services-monitor",
                "service-logs",
                "service-dashboard",
                "chart-builder",
                "user-info",
                "localization-builder",
                "localization-management"
            }));

            var userRole = new Role
            {
                Id             = "5e6b506e52605e513cd02267",
                Name           = Roles.User,
                NormalizedName = Roles.User.ToUpper(System.Globalization.CultureInfo.CurrentCulture),
                DisplayName    = Roles.User,
                Claims         = new List <BaseClaim>
                {
                }
            };

            userRole.Claims.AddRange(StandardClaims
                                     .GenerateClaimsByPages(new string[]
            {
                "user-info"
            }));
            versionContext.InsertData(adminRole);
            versionContext.InsertData(developerRole);
            versionContext.InsertData(userRole);
            return(Task.CompletedTask);
        }