/// <summary>
        /// Sets the value (as id)
        /// </summary>
        /// <param name="control">The control.</param>
        /// <param name="configurationValues">The configuration values.</param>
        /// <param name="value">The value.</param>
        public override void SetEditValue(System.Web.UI.Control control, Dictionary <string, ConfigurationValue> configurationValues, string value)
        {
            var picker = control as CheckinGroupPicker;

            if (picker != null)
            {
                bool allowMultiSelect = false;
                if (configurationValues != null &&
                    configurationValues.ContainsKey(CONFIG_GROUP_PICKER_ALLOW_MULTI_SELECT) &&
                    configurationValues[CONFIG_GROUP_PICKER_ALLOW_MULTI_SELECT] != null)
                {
                    allowMultiSelect = configurationValues[CONFIG_GROUP_PICKER_ALLOW_MULTI_SELECT].Value.AsBoolean();
                }

                if (allowMultiSelect)
                {
                    if (!string.IsNullOrWhiteSpace(value))
                    {
                        var groupGuids = value.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries)
                                         .Select(g => g.AsGuid())
                                         .ToList();
                        var groups = new Rock.Model.GroupService(new RockContext()).GetByGuids(groupGuids);
                        picker.SelectedGroups = groups;
                    }
                }
                else
                {
                    Guid guid = value.AsGuid();

                    // get the item (or null) and set it
                    var group = new Rock.Model.GroupService(new RockContext()).Get(guid);
                    picker.SelectedGroup = group;
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Returns a list of all the possible Roles
        /// </summary>
        /// <returns></returns>
        public static List <Role> AllRoles()
        {
            List <Role> roles = new List <Role>();

            Rock.Model.GroupService groupService = new Rock.Model.GroupService();
            foreach (int id in groupService.Queryable()
                     .Where(g => g.IsSecurityRole == true)
                     .OrderBy(g => g.Name)
                     .Select(g => g.Id)
                     .ToList())
            {
                roles.Add(Role.Read(id));
            }

            return(roles);
        }
        /// <summary>
        /// Returns the field's current value(s)
        /// </summary>
        /// <param name="parentControl">The parent control.</param>
        /// <param name="value">Information about the value</param>
        /// <param name="Values">The configuration values.</param>
        /// <param name="condensed">Flag indicating if the value should be condensed (i.e. for use in a grid column)</param>
        /// <returns></returns>
        public override string FormatValue(Control parentControl, string value, Dictionary <string, ConfigurationValue> configurationValues, bool condensed)
        {
            string formattedValue = value;

            if (!string.IsNullOrWhiteSpace(value))
            {
                var guids = value.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries)
                            .Select(g => g.AsGuid())
                            .ToList();
                var groupNames = new Rock.Model.GroupService(new RockContext())
                                 .GetByGuids(guids)
                                 .Select(g => g.Name);
                if (groupNames.Any())
                {
                    formattedValue = string.Join(", ", groupNames);
                }
            }
            return(base.FormatValue(parentControl, formattedValue, configurationValues, condensed));
        }
Esempio n. 4
0
        /// <summary>
        /// Returns a list of all the possible Roles
        /// </summary>
        /// <returns></returns>
        public static List <Role> AllRoles()
        {
            List <Role> roles = new List <Role>();

            Guid securityRoleGuid = Rock.SystemGuid.GroupType.GROUPTYPE_SECURITY_ROLE.AsGuid();

            Rock.Model.GroupService groupService = new Rock.Model.GroupService(new RockContext());
            foreach (int id in groupService.Queryable()
                     .Where(g =>
                            g.GroupType.Guid.Equals(securityRoleGuid) ||
                            g.IsSecurityRole == true)
                     .OrderBy(g => g.Name)
                     .Select(g => g.Id)
                     .ToList())
            {
                roles.Add(Role.Read(id));
            }

            return(roles);
        }
Esempio n. 5
0
        /// <summary>
        /// Returns a list of all the possible Roles
        /// </summary>
        /// <returns></returns>
        public static List <Role> AllRoles()
        {
            List <Role> roles = new List <Role>();

            var securityGroupType   = GroupTypeCache.Read(Rock.SystemGuid.GroupType.GROUPTYPE_SECURITY_ROLE.AsGuid());
            int securityGroupTypeId = securityGroupType != null ? securityGroupType.Id : 0;

            Rock.Model.GroupService groupService = new Rock.Model.GroupService(new RockContext());
            foreach (int id in groupService.Queryable()
                     .Where(g =>
                            g.IsActive &&
                            (g.GroupTypeId == securityGroupTypeId || g.IsSecurityRole == true))
                     .OrderBy(g => g.Name)
                     .Select(g => g.Id)
                     .ToList())
            {
                roles.Add(Role.Read(id));
            }

            return(roles);
        }
Esempio n. 6
0
        /// <summary>
        /// Loads the groups.
        /// </summary>
        /// <param name="groupTypeId">The group type identifier.</param>
        private void LoadGroups(int?groupTypeId)
        {
            int?currentGroupId = this.GroupId;

            _ddlGroup.SelectedValue = null;
            _ddlGroup.Items.Clear();
            if (groupTypeId.HasValue)
            {
                _ddlGroup.Items.Add(Rock.Constants.None.ListItem);

                var groupService = new Rock.Model.GroupService(new RockContext());
                var groups       = groupService.Queryable().Where(r => r.GroupTypeId == groupTypeId.Value).OrderBy(a => a.Name).ToList();

                foreach (var r in groups)
                {
                    var item = new ListItem(r.Name, r.Id.ToString().ToUpper());
                    item.Selected = r.Id == currentGroupId;
                    _ddlGroup.Items.Add(item);
                }
            }
        }
Esempio n. 7
0
        /// <summary>
        /// Returns Role object from cache.  If role does not already exist in cache, it
        /// will be read and added to cache
        /// </summary>
        /// <param name="id">The id.</param>
        /// <returns></returns>
        public static Role Read(int id)
        {
            string cacheKey = Role.CacheKey(id);

            ObjectCache cache = Rock.Web.Cache.RockMemoryCache.Default;
            Role        role  = cache[cacheKey] as Role;

            if (role != null)
            {
                return(role);
            }
            else
            {
                using (var rockContext = new RockContext())
                {
                    Rock.Model.GroupService groupService = new Rock.Model.GroupService(rockContext);
                    Rock.Model.Group        groupModel   = groupService.Get(id);

                    if (groupModel != null && groupModel.IsSecurityRole == true)
                    {
                        role       = new Role();
                        role.Id    = groupModel.Id;
                        role.Name  = groupModel.Name;
                        role.Users = new List <string>();
                        role.IsSecurityTypeGroup = groupModel.GroupType.Guid.Equals(Rock.SystemGuid.GroupType.GROUPTYPE_SECURITY_ROLE.AsGuid());

                        foreach (Rock.Model.GroupMember member in groupModel.Members)
                        {
                            role.Users.Add(member.Person.Guid.ToString());
                        }

                        cache.Set(cacheKey, role, new CacheItemPolicy());

                        return(role);
                    }
                }
            }

            return(null);
        }
Esempio n. 8
0
        /// <summary>
        /// Loads the groups.
        /// </summary>
        /// <param name="groupTypeId">The group type identifier.</param>
        private void LoadGroupsAndRoles(int?groupTypeId)
        {
            int?currentGroupId     = this.GroupId;
            int?currentGroupRoleId = this.GroupRoleId;

            _ddlGroup.SelectedValue = null;
            _ddlGroup.Items.Clear();

            _ddlGroupRole.SelectedValue = null;
            _ddlGroupRole.Items.Clear();
            if (groupTypeId.HasValue)
            {
                _ddlGroup.Items.Add(new ListItem());

                var rockContext  = new RockContext();
                var groupService = new Rock.Model.GroupService(rockContext);
                var groups       = groupService.Queryable().Where(r => r.GroupTypeId == groupTypeId.Value).OrderBy(a => a.Name).ToList();

                foreach (var r in groups)
                {
                    var item = new ListItem(r.Name, r.Id.ToString().ToUpper());
                    item.Selected = r.Id == currentGroupId;
                    _ddlGroup.Items.Add(item);
                }

                var groupTypeRoleService = new Rock.Model.GroupTypeRoleService(rockContext);
                var groupRoles           = groupTypeRoleService.Queryable().Where(r => r.GroupTypeId == groupTypeId.Value).OrderBy(a => a.Order).ThenBy(a => a.Name).ToList();

                // add a blank option as first item
                _ddlGroupRole.Items.Add(new ListItem());
                foreach (var r in groupRoles)
                {
                    var item = new ListItem(r.Name, r.Id.ToString().ToUpper());
                    item.Selected = r.Id == currentGroupRoleId;
                    _ddlGroupRole.Items.Add(item);
                }
            }
        }
Esempio n. 9
0
        /// <summary>
        /// Returns Role object from cache.  If role does not already exist in cache, it
        /// will be read and added to cache
        /// </summary>
        /// <param name="id">The id.</param>
        /// <returns></returns>
        public static Role Read(int id)
        {
            string cacheKey = Role.CacheKey(id);

            ObjectCache cache = MemoryCache.Default;
            Role        role  = cache[cacheKey] as Role;

            if (role != null)
            {
                return(role);
            }
            else
            {
                Rock.Model.GroupService groupService = new Rock.Model.GroupService();
                Rock.Model.Group        groupModel   = groupService.Get(id);

                if (groupModel != null && groupModel.IsSecurityRole == true)
                {
                    role       = new Role();
                    role.Id    = groupModel.Id;
                    role.Name  = groupModel.Name;
                    role.Users = new List <string>();

                    foreach (Rock.Model.GroupMember member in groupModel.Members)
                    {
                        role.Users.Add(member.Person.Guid.ToString());
                    }

                    cache.Set(cacheKey, role, new CacheItemPolicy());

                    return(role);
                }
                else
                {
                    return(null);
                }
            }
        }
Esempio n. 10
0
        /// <summary>
        /// Loads the by identifier.
        /// </summary>
        /// <param name="id">The identifier.</param>
        /// <returns></returns>
        public static Role LoadById(int id)
        {
            using (var rockContext = new RockContext())
            {
                var securityGroupType   = GroupTypeCache.Read(Rock.SystemGuid.GroupType.GROUPTYPE_SECURITY_ROLE.AsGuid(), rockContext);
                int securityGroupTypeId = securityGroupType != null ? securityGroupType.Id : 0;

                Rock.Model.GroupService       groupService       = new Rock.Model.GroupService(rockContext);
                Rock.Model.GroupMemberService groupMemberService = new Rock.Model.GroupMemberService(rockContext);
                Rock.Model.Group groupModel = groupService.Get(id);

                if (groupModel != null && (groupModel.IsSecurityRole == true || groupModel.GroupTypeId == securityGroupTypeId))
                {
                    var role = new Role();
                    role.Id     = groupModel.Id;
                    role.Name   = groupModel.Name;
                    role.People = new ConcurrentDictionary <Guid, bool>();

                    var groupMembersQry = groupMemberService.Queryable().Where(a => a.GroupId == groupModel.Id);

                    // Add the members
                    foreach (var personGuid in groupMembersQry
                             .Where(m => m.GroupMemberStatus == Model.GroupMemberStatus.Active)
                             .Select(m => m.Person.Guid)
                             .ToList()
                             .Distinct())
                    {
                        role.People.TryAdd(personGuid, true);
                    }

                    role.IsSecurityTypeGroup = groupModel.GroupTypeId == securityGroupTypeId;

                    return(role);
                }
            }

            return(null);
        }
Esempio n. 11
0
File: Role.cs Progetto: Ganon11/Rock
        /// <summary>
        /// Returns a list of all the possible Roles
        /// </summary>
        /// <returns></returns>
        public static List<Role> AllRoles()
        {
            List<Role> roles = new List<Role>();

            Rock.Model.GroupService groupService = new Rock.Model.GroupService( new RockContext() );
            foreach ( int id in groupService.Queryable()
                .Where( g => g.IsSecurityRole == true )
                .OrderBy( g => g.Name )
                .Select( g => g.Id )
                .ToList() )
            {
                roles.Add( Role.Read( id ) );
            }

            return roles;
        }
Esempio n. 12
0
File: Role.cs Progetto: Ganon11/Rock
        /// <summary>
        /// Returns Role object from cache.  If role does not already exist in cache, it
        /// will be read and added to cache
        /// </summary>
        /// <param name="id">The id.</param>
        /// <returns></returns>
        public static Role Read( int id )
        {
            string cacheKey = Role.CacheKey( id );

            ObjectCache cache = MemoryCache.Default;
            Role role = cache[cacheKey] as Role;

            if ( role != null )
                return role;
            else
            {
                Rock.Model.GroupService groupService = new Rock.Model.GroupService( new RockContext() );
                Rock.Model.Group groupModel = groupService.Get( id );

                if ( groupModel != null && groupModel.IsSecurityRole == true )
                {
                    role = new Role();
                    role.Id = groupModel.Id;
                    role.Name = groupModel.Name;
                    role.Users = new List<string>();

                    foreach ( Rock.Model.GroupMember member in groupModel.Members )
                    {
                        role.Users.Add( member.Person.Guid.ToString() );
                    }

                    cache.Set( cacheKey, role, new CacheItemPolicy() );

                    return role;
                }
                else
                    return null;

            }
        }
Esempio n. 13
0
        /// <summary>
        /// Returns a list of all the possible Roles
        /// </summary>
        /// <returns></returns>
        public static List<Role> AllRoles()
        {
            List<Role> roles = new List<Role>();

            var securityGroupType = GroupTypeCache.Read( Rock.SystemGuid.GroupType.GROUPTYPE_SECURITY_ROLE.AsGuid() );
            int securityGroupTypeId = securityGroupType != null ? securityGroupType.Id : 0;

            Rock.Model.GroupService groupService = new Rock.Model.GroupService( new RockContext() );
            foreach ( int id in groupService.Queryable()
                .Where( g =>
                    g.IsActive &&
                    ( g.GroupTypeId == securityGroupTypeId || g.IsSecurityRole == true  ) )
                .OrderBy( g => g.Name )
                .Select( g => g.Id )
                .ToList() )
            {
                roles.Add( Role.Read( id ) );
            }

            return roles;
        }
Esempio n. 14
0
        /// <summary>
        /// Loads the groups.
        /// </summary>
        /// <param name="groupTypeId">The group type identifier.</param>
        private void LoadGroups( int? groupTypeId )
        {
            int? currentGroupId = this.GroupId;
            _ddlGroup.SelectedValue = null;
            _ddlGroup.Items.Clear();
            if ( groupTypeId.HasValue )
            {
                _ddlGroup.Items.Add( Rock.Constants.None.ListItem );

                var groupService = new Rock.Model.GroupService( new RockContext() );
                var groups = groupService.Queryable().Where( r => r.GroupTypeId == groupTypeId.Value ).OrderBy( a => a.Name ).ToList();

                foreach ( var r in groups )
                {
                    var item = new ListItem( r.Name, r.Id.ToString().ToUpper() );
                    item.Selected = r.Id == currentGroupId;
                    _ddlGroup.Items.Add( item );
                }
            }
        }
Esempio n. 15
0
        /// <summary>
        /// Loads the by identifier.
        /// </summary>
        /// <param name="id">The identifier.</param>
        /// <returns></returns>
        public static Role LoadById( int id )
        {
            using ( var rockContext = new RockContext() )
            {
                var securityGroupType = GroupTypeCache.Read( Rock.SystemGuid.GroupType.GROUPTYPE_SECURITY_ROLE.AsGuid(), rockContext );
                int securityGroupTypeId = securityGroupType != null ? securityGroupType.Id : 0;

                Rock.Model.GroupService groupService = new Rock.Model.GroupService( rockContext );
                Rock.Model.GroupMemberService groupMemberService = new Rock.Model.GroupMemberService( rockContext );
                Rock.Model.Group groupModel = groupService.Get( id );

                if ( groupModel != null && groupModel.IsActive && ( groupModel.IsSecurityRole == true || groupModel.GroupTypeId == securityGroupTypeId ) )
                {
                    var role = new Role();
                    role.Id = groupModel.Id;
                    role.Name = groupModel.Name;
                    role.People = new ConcurrentDictionary<Guid,bool>();

                    var groupMembersQry = groupMemberService.Queryable().Where( a => a.GroupId == groupModel.Id );

                    // Add the members
                    foreach ( var personGuid in groupMembersQry
                        .Where( m => m.GroupMemberStatus == Model.GroupMemberStatus.Active )
                        .Select( m => m.Person.Guid )
                        .ToList()
                        .Distinct() )
                    {
                        role.People.TryAdd( personGuid, true );
                    }

                    role.IsSecurityTypeGroup = groupModel.GroupTypeId == securityGroupTypeId;

                    return role;
                }
            }

            return null;
        }
Esempio n. 16
0
        /// <summary>
        /// Loads the groups.
        /// </summary>
        /// <param name="groupTypeId">The group type identifier.</param>
        private void LoadGroupsAndRoles( int? groupTypeId )
        {
            int? currentGroupId = this.GroupId;
            int? currentGroupRoleId = this.GroupRoleId;
            _ddlGroup.SelectedValue = null;
            _ddlGroup.Items.Clear();

            _ddlGroupRole.SelectedValue = null;
            _ddlGroupRole.Items.Clear();
            if ( groupTypeId.HasValue )
            {
                _ddlGroup.Items.Add( new ListItem() );

                var rockContext = new RockContext();
                var groupService = new Rock.Model.GroupService( rockContext );
                var groups = groupService.Queryable().Where( r => r.GroupTypeId == groupTypeId.Value ).OrderBy( a => a.Name ).ToList();

                foreach ( var r in groups )
                {
                    var item = new ListItem( r.Name, r.Id.ToString().ToUpper() );
                    item.Selected = r.Id == currentGroupId;
                    _ddlGroup.Items.Add( item );
                }

                var groupTypeRoleService = new Rock.Model.GroupTypeRoleService( rockContext );
                var groupRoles = groupTypeRoleService.Queryable().Where( r => r.GroupTypeId == groupTypeId.Value ).OrderBy( a => a.Order ).ThenBy( a => a.Name ).ToList();

                // add a blank option as first item
                _ddlGroupRole.Items.Add( new ListItem() );
                foreach ( var r in groupRoles )
                {
                    var item = new ListItem( r.Name, r.Id.ToString().ToUpper() );
                    item.Selected = r.Id == currentGroupRoleId;
                    _ddlGroupRole.Items.Add( item );
                }
            }
        }
Esempio n. 17
0
        /// <summary>
        /// Returns a list of all the possible Roles
        /// </summary>
        /// <returns></returns>
        public static List<Role> AllRoles()
        {
            List<Role> roles = new List<Role>();

            Guid securityRoleGuid = Rock.SystemGuid.GroupType.GROUPTYPE_SECURITY_ROLE.AsGuid();

            Rock.Model.GroupService groupService = new Rock.Model.GroupService( new RockContext() );
            foreach ( int id in groupService.Queryable()
                .Where( g =>
                    g.GroupType.Guid.Equals(securityRoleGuid) ||
                    g.IsSecurityRole == true )
                .OrderBy( g => g.Name )
                .Select( g => g.Id )
                .ToList() )
            {
                roles.Add( Role.Read( id ) );
            }

            return roles;
        }
Esempio n. 18
0
        /// <summary>
        /// Returns Role object from cache.  If role does not already exist in cache, it
        /// will be read and added to cache
        /// </summary>
        /// <param name="id">The id.</param>
        /// <returns></returns>
        public static Role Read( int id )
        {
            string cacheKey = Role.CacheKey( id );

            ObjectCache cache = Rock.Web.Cache.RockMemoryCache.Default;
            Role role = cache[cacheKey] as Role;

            if ( role != null )
            {
                return role;
            }
            else
            {
                using ( var rockContext = new RockContext() )
                {
                    Rock.Model.GroupService groupService = new Rock.Model.GroupService( rockContext );
                    Rock.Model.Group groupModel = groupService.Get( id );

                    if ( groupModel != null && groupModel.IsSecurityRole == true )
                    {
                        role = new Role();
                        role.Id = groupModel.Id;
                        role.Name = groupModel.Name;
                        role.Users = new List<string>();
                        role.IsSecurityTypeGroup = groupModel.GroupType.Guid.Equals( Rock.SystemGuid.GroupType.GROUPTYPE_SECURITY_ROLE.AsGuid() );

                        foreach ( Rock.Model.GroupMember member in groupModel.Members )
                        {
                            role.Users.Add( member.Person.Guid.ToString() );
                        }

                        cache.Set( cacheKey, role, new CacheItemPolicy() );

                        return role;
                    }
                }
            }

            return null;
        }