예제 #1
0
 /// <summary>
 /// creates the database model in the database (code-first)
 /// </summary>
 /// <param name="modelBuilder">modelbuilder</param>
 protected new virtual void OnModelCreating(ModelBuilder modelBuilder)
 {
     Token.OnModelCreating(modelBuilder);
     User.OnModelCreating(modelBuilder);
     UserGroup.OnModelCreating(modelBuilder);
     UserGroup_Claims.OnModelCreating(modelBuilder);
     UserInOrganisation.OnModelCreating(modelBuilder);
     UserInUserGroup.OnModelCreating(modelBuilder);
     UserMetadata.OnModelCreating(modelBuilder);
     UserInOrg_UserClaimsMetadata.OnModelCreating(modelBuilder);
     UserInOrg_OrgClaimsMetadata.OnModelCreating(modelBuilder);
     UserLoginLog.OnModelCreating(modelBuilder);
 }
예제 #2
0
        private static void UpdateOrgdata(CallContext cc, User dbuser)
        {
            if (cc.IsAdministrator)
            {
                if (DataContext.Instance.UserInOrganisations
                    .Where(p =>
                           p.FK_Organisation == cc.OrganisationId &&
                           p.User.Id == dbuser.Id)
                    .Any() == false)
                {
                    var org = cc.User.Organisations.Where(p => p.Id == cc.OrganisationId).FirstOrDefault();
                    if (org != null)
                    {
                        var userInOrg = new UserInOrganisation()
                        {
                            FK_Organisation = cc.OrganisationId.Value,
                            User            = dbuser,
                        };
                        DataContext.Instance.UserInOrganisations.Add(userInOrg);

                        if (org.OrgClaims != null)
                        {
                            foreach (var orgclaims in org.OrgClaims)
                            {
                                userInOrg.OrgClaims.Add(new UserInOrg_OrgClaimsMetadata()
                                {
                                    Key   = orgclaims.Key,
                                    Scope = orgclaims.Scope,
                                    Value = orgclaims.Value
                                });
                            }
                        }
                    }
                }
            }
        }
예제 #3
0
        /// <summary>
        /// Create an administrator account on the given organisation context
        /// </summary>
        /// <param name="usr">The user details for the account</param>
        /// <param name="organisationContext">The organisation context</param>
        /// <returns>The created/updated user</returns>
        public static User CreateAdmin(Monosoft.Auth.DTO.User usr, Guid organisationContext)
        {
            Console.Write(organisationContext);
            string pwd    = "defaultPWD";// Guid.NewGuid().ToString("N").ToUpper().Substring(0, 8);
            var    dbuser = DataContext.Instance.Users.Where(p => p.Name == usr.Username).FirstOrDefault();

            if (dbuser == null)
            {
                dbuser = new User()
                {
                    Id          = usr.Userid,
                    Name        = usr.Username,
                    Email       = usr.Email,
                    Mobile      = usr.Mobile,
                    MD5Password = Common.Utils.HashHelper.CalculateMD5Hash(pwd)
                };
                DataContext.Instance.Users.Add(dbuser);
            }

            var userInOrg = DataContext.Instance.UserInOrganisations
                            .Where(p =>
                                   p.User.Id == dbuser.Id &&
                                   p.FK_Organisation == organisationContext).FirstOrDefault();

            if (userInOrg == null)
            {
                userInOrg = new UserInOrganisation()
                {
                    FK_Organisation = organisationContext,
                    User            = dbuser,
                };
                DataContext.Instance.UserInOrganisations.Add(userInOrg);
            }

            var claim = DataContext.Instance.UserInOrg_OrgClaimsMetadatas
                        .Where(p =>
                               p.UserInOrganisation == userInOrg &&
                               p.Key == ClaimDefinitions.IsAdmin.Key).FirstOrDefault();

            if (claim == null)
            {
                DataContext.Instance.UserInOrg_OrgClaimsMetadatas
                .Add(new UserInOrg_OrgClaimsMetadata()
                {
                    Key   = ClaimDefinitions.IsAdmin.Key,
                    Scope = ClaimDefinitions.IsAdmin.Scope,
                    Value = "true",
                    UserInOrganisation = userInOrg
                });

                DataContext.Instance.UserInOrg_OrgClaimsMetadatas
                .Add(new UserInOrg_OrgClaimsMetadata()
                {
                    Key   = "isServiceStoreAdmin",
                    Scope = "Monosoft.Service.AUTH",
                    Value = "true",
                    UserInOrganisation = userInOrg
                });

                DataContext.Instance.UserInOrg_OrgClaimsMetadatas
                .Add(new UserInOrg_OrgClaimsMetadata()
                {
                    Key   = "isSysAdm",
                    Scope = "Monosoft.Service.AUTH",
                    Value = "true",
                    UserInOrganisation = userInOrg
                });
            }

            DataContext.Instance.SaveChanges();
            return(dbuser);
        }