示例#1
0
 public RoleMembershipViewModel(
     IViewModelDependencies appCtx, IZetboxContext dataCtx, ViewModel parent,
     RoleMembership roleMembership)
     : base(appCtx, dataCtx, parent, roleMembership)
 {
     _roleMembership = roleMembership;
     _roleMembership.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(_roleMembership_PropertyChanged);
 }
示例#2
0
 public RoleMembershipViewModel(
     IViewModelDependencies appCtx, IZetboxContext dataCtx, ViewModel parent,
     RoleMembership roleMembership)
     : base(appCtx, dataCtx, parent, roleMembership)
 {
     _roleMembership = roleMembership;
     _roleMembership.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(_roleMembership_PropertyChanged);
 }
示例#3
0
        public RoleModel CreateRoleEntity(RoleMembership model)
        {
            RoleModel ety = new RoleModel()
            {
                RoleId      = model.RoleId,
                RoleName    = model.RoleName,
                Description = model.Description
            };

            return(ety);
        }
示例#4
0
        public RoleMembership CreateRoleModel(RoleModel entity)
        {
            RoleMembership model = new RoleMembership()
            {
                RoleId      = entity.RoleId,
                RoleName    = entity.RoleName,
                Description = entity.Description
            };

            return(model);
        }
示例#5
0
        /// <summary>
        /// This method configures the database model with EF Core's fluent API
        /// </summary>
        protected override void OnModelCreating(ModelBuilder builder)
        {
            base.OnModelCreating(builder);

            string tenantId = "TenantId";

            // Measurement Units
            AddTenantId <MeasurementUnit>(builder);
            MeasurementUnit.OnModelCreating(builder);

            // Custodies
            AddTenantId <Custody>(builder);
            Custody.OnModelCreating(builder);

            // Agents : Custodies
            Agent.OnModelCreating_Agent(builder);

            // Roles
            AddTenantId <Role>(builder);
            Role.OnModelCreating(builder);

            // Views
            AddTenantId <View>(builder);
            View.OnModelCreating(builder);

            // Local Users
            AddTenantId <LocalUser>(builder);
            LocalUser.OnModelCreating(builder);

            // Role Memberships
            AddTenantId <RoleMembership>(builder);
            RoleMembership.OnModelCreating(builder);

            // Permissions
            AddTenantId <Permission>(builder);
            Permission.OnModelCreating(builder);

            // Settings
            AddTenantId <Settings>(builder, tenantId);
            Data.Model.Settings.OnModelCreating(builder);

            // Blobs
            AddTenantId <Blob>(builder, nameof(Blob.Id), tenantId);
            Blob.OnModelCreating(builder);

            // EF migratios was confused about these for some reason, had to set them manually
            builder.Entity <Dto.AgentForQuery>().HasOne(e => e.CreatedBy).WithMany().HasForeignKey(e => e.CreatedById);
            builder.Entity <Dto.AgentForQuery>().HasOne(e => e.ModifiedBy).WithMany().HasForeignKey(e => e.ModifiedById);
            builder.Entity <Dto.LocalUserForQuery>().HasOne(e => e.Agent).WithMany().HasForeignKey(e => e.AgentId);
            builder.Entity <Dto.RoleMembershipForQuery>().HasOne(e => e.User).WithMany(e => e.Roles).HasForeignKey(e => e.UserId);
            builder.Entity <Dto.RoleMembershipForQuery>().HasOne(e => e.CreatedBy).WithMany().HasForeignKey(e => e.CreatedById);
            builder.Entity <Dto.RoleMembershipForQuery>().HasOne(e => e.ModifiedBy).WithMany().HasForeignKey(e => e.ModifiedById);
        }
示例#6
0
        public void AddUserToRole(User user, int roleId)
        {
            var role = Context.Roles.Where(r => r.Id == roleId).FirstOrDefault();

            if (role != null)
            {
                RoleMembership m = new RoleMembership();
                m.User = user;
                m.Role = role;

                Context.RoleMemberships.Add(m);
            }
        }
示例#7
0
        public void AddRoleToUser(Role role, int userId)
        {
            var user = Context.Users.Where(u => u.Id == userId).FirstOrDefault();

            if (user != null)
            {
                RoleMembership m = new RoleMembership();
                m.User = user;
                m.Role = role;

                Context.RoleMemberships.Add(m);
            }
        }
示例#8
0
        /// <summary>
        /// This method configures the database model with EF Core's fluent API
        /// </summary>
        protected override void OnModelCreating(ModelBuilder builder)
        {
            base.OnModelCreating(builder);

            string tenantId = "TenantId";

            // Measurement Units
            AddTenantId <MeasurementUnit>(builder);
            MeasurementUnit.OnModelCreating(builder);

            // Custodies
            AddTenantId <Custody>(builder);
            Custody.OnModelCreating(builder);

            // Agents : Custodies
            Agent.OnModelCreating_Agent(builder);

            // Roles
            AddTenantId <Role>(builder);
            Role.OnModelCreating(builder);

            // Views
            AddTenantId <View>(builder);
            View.OnModelCreating(builder);

            // Local Users
            AddTenantId <LocalUser>(builder);
            LocalUser.OnModelCreating(builder);

            // Role Memberships
            AddTenantId <RoleMembership>(builder);
            RoleMembership.OnModelCreating(builder);

            // Permissions
            AddTenantId <Permission>(builder);
            Permission.OnModelCreating(builder);

            // Settings
            AddTenantId <Settings>(builder, tenantId);
            Data.Model.Settings.OnModelCreating(builder);

            // Blobs
            AddTenantId <Blob>(builder, nameof(Blob.Id), tenantId);
            Blob.OnModelCreating(builder);
        }
示例#9
0
        /// <summary>
        /// Gets the menu for user.
        /// </summary>
        /// <param name="userId">Name of the user.</param>
        /// <param name="userCulture">The user culture.</param>
        /// <returns>MenuContainer.</returns>
        public MenuContainer GetMenuForUser(string userId, string userCulture = null)
        {
            if (String.IsNullOrWhiteSpace(userCulture))
            {
                userCulture = "en-US";
            }
            // first, get all te roles where this user belongs to
            var lnk = new RoleMembership()
            {
                SourceId = userId
            };
            var roleMemberships = EcoSpacePortal
                                  .EcoSpace
                                  .GetRoleMemberships(userId);
            var men = RoleMenuLinks.GetMenu(roleMemberships, userCulture);

            return(Menu.Filter(men));
        }
示例#10
0
        /// <summary>
        /// Assigns/unassigns security role memebership
        /// </summary>
        /// <param name="memberShip"></param>
        public void EnsureSystemUserRoleMembership(RoleMembership memberShip)
        {
            string query = $@"<fetch>
                                  <entity name='systemuserroles' >
                                    <attribute name='systemuserroleid' />
                                    <filter>
                                      <condition attribute='roleid' operator='eq' value='{ memberShip.Role.Id }' />
                                      <condition attribute='systemuserid' operator='eq' value='{ memberShip.User.Id }' />
                                    </filter>
                                  </entity>
                                </fetch>";

            Guid membershipFromCrm = Helper.FetchRecord(_organizationService, query, "systemuserroleid");

            if (memberShip.Assign)
            {
                if (membershipFromCrm == Guid.Empty)
                {
                    _organizationService.Associate("systemuser",
                                                   memberShip.User.Id,
                                                   new Relationship("systemuserroles_association"),
                                                   new EntityReferenceCollection()
                    {
                        new EntityReference("role", memberShip.Role.Id)
                    });
                }
            }
            else
            {
                if (membershipFromCrm != Guid.Empty)
                {
                    _organizationService.Disassociate("systemuser",
                                                      memberShip.User.Id,
                                                      new Relationship("systemuserroles_association"),
                                                      new EntityReferenceCollection()
                    {
                        new EntityReference("role", memberShip.Role.Id)
                    });
                }
            }
        }
示例#11
0
 public static void postSet_Relations(RoleMembership obj)
 {
     obj.Recalculate("Description");
 }