/// <summary>
 /// Check Roles in CheckedListBox from given User.
 /// </summary>
 private void CheckRolesForSelectedUser(ModelSystemUserWithRoles parsedUserRoles)
 {
     // Clear Roles CheckedListBox
     this.CLB_Roles.ClearAllSelections();
     // Check each Role
     foreach (var role in parsedUserRoles.Roles)
     {
         var roleIndex = this.Roles.GetIndexOfRole(role);
         // Check Role
         this.CLB_Roles.SetItemCheckState(roleIndex, CheckState.Checked);
     }
 }
        /// <summary>
        /// Pobierz dane dla tabeli Entity Permisiions z CRM.
        /// </summary>
        public ICollection <DataRow> GetDataRowCollection(ModelSystemUserWithRoles user, List <EntityMetadata> metadata)
        {
            List <DataRow> result = new List <DataRow>();
            Dictionary <ModelRole, List <ModelRolePrivilege> > LoadedPrivileges =
                new Dictionary <ModelRole, List <ModelRolePrivilege> >();

            foreach (var role in user.Roles)
            {
                var rolePrivileges = GetRolePrivileges(role);
                LoadedPrivileges.Add(role, rolePrivileges);
            }

            // For each Entity
            foreach (EntityMetadata entity in metadata)
            {
                if (user.Roles.Count == 0)
                {
                    continue;
                }

                foreach (var privilege in LoadedPrivileges)
                {
                    DataRow dataRow = new DataRow()
                    {
                        EntityName        = entity.DisplayName.UserLocalizedLabel.Label,
                        EntityLogicalName = entity.LogicalName,
                        Role     = privilege.Key.Name,
                        Read     = GetPrivilegeRange(entity, privilege, PrivilegeType.Read),
                        Write    = GetPrivilegeRange(entity, privilege, PrivilegeType.Write),
                        Append   = GetPrivilegeRange(entity, privilege, PrivilegeType.Append),
                        AppendTo = GetPrivilegeRange(entity, privilege, PrivilegeType.AppendTo),
                        Assign   = GetPrivilegeRange(entity, privilege, PrivilegeType.Assign),
                        Delete   = GetPrivilegeRange(entity, privilege, PrivilegeType.Delete),
                        Share    = GetPrivilegeRange(entity, privilege, PrivilegeType.Share),
                    };
                    result.Add(dataRow);
                }
            }

            return(result);
        }
Exemple #3
0
        /// <summary>
        /// Parse current <see cref="EntityCollection"/> to <see cref="ModelSystemUserWithRoles"/>.
        /// </summary>
        public static ModelSystemUserWithRoles ToSystemModelWithRoles(this EntityCollection entities)
        {
            // Initialize new object
            var userWithRoles = new ModelSystemUserWithRoles()
            {
                SystemUser = null,
                Roles      = new List <ModelRole>()
            };

            // Parse Roles and add them to List
            foreach (var entity in entities.Entities)
            {
                // Set User if null
                if (userWithRoles.SystemUser == null)
                {
                    userWithRoles.SystemUser = entity.ToSystemUser();
                }
                // Add Role to List
                var role = entity.ToRetrievedRole();
                userWithRoles.Roles.Add(role);
            }
            return(userWithRoles);
        }