예제 #1
0
		public void SetStateVisibilities(long stateId, RoleType[] roles)
		{
			if(roles == null)
			{
				throw new ArgumentNullException("roles");
			}

			var table = TableParameters.GeIdsTable("Roles", roles.Select(x => (long)x).ToArray());

			_executor.Execute("[dbo].[State_SetStateVisibilities]", new TableParameters(new { stateId }, table));
		}
예제 #2
0
        /// <summary>
        /// Gets the roles the current user has access to
        /// NOTE: Role includes MemberParties, and OwnerBusinessAccount
        /// </summary>
        /// <param name="coreEntitiesContainer">The core entities container.</param>
        /// <param name="allowedRoleTypes">Return null if the user does not have access to one of these role types.</param>
        /// <exception cref="AuthenticationException">Thrown if user is not logged in</exception>
        public static IQueryable<Role> RolesCurrentUserHasAccessTo(this CoreEntitiesContainer coreEntitiesContainer, RoleType[] allowedRoleTypes)
        {
            var allowedRoleTypeInts = allowedRoleTypes.Select(t => (int)t);

            var roles = (from user in CurrentUserAccountQueryable(coreEntitiesContainer) //there will only be one
                         from role in coreEntitiesContainer.Roles.Where(r => allowedRoleTypeInts.Contains(r.RoleTypeInt))
#if !DEBUG //Skip security in debug mode
                         where role.OwnerBusinessAccountId == user.Id || role.MemberParties.Any(a => a.Id == user.Id)
#endif
                         select role).Include(r => r.OwnerBusinessAccount).Include(r => r.MemberParties);

            return roles;
        }
예제 #3
0
		public void Set(EventType eventType, RoleType[] recipients)
		{
			var table = TableParameters.GeIdsTable("Recipients", recipients.Select(x => (long)x).ToArray());

			_executor.Execute("[dbo].[EventEmailRecipient_Set]", new TableParameters(new { EventTypeId = eventType }, table));
		}