public static bool DoesUserHavePerm(User u, PermissionableEntity ent, Permission perm)
 {
     return true;
 }
        public static void DeletePermissionEntry(Group g, PermissionableEntity ent, Permission perm)
        {
            if (!DoesUserHavePerm(WindchimeSession.Current.User, ent, Permission.EditPermissions))
                throw new NoPermissionException(Permission.EditPermissions);

            if (g == null || ent == null)
                return;

            using (WindchimeEntities wce = new WindchimeEntities())
            {
                var deletePerm = (from PermissionEntry pe in wce.PermissionEntrySet
                                  where pe.GroupID == g.GroupID && pe.EntityID == ent.EntityID && pe.Permission == (int)perm
                                  select pe);

                foreach (var pe in deletePerm)
                    wce.DeleteObject(pe);
            }
        }
 public static bool DoesGroupHavePerm(Group g, PermissionableEntity ent, Permission perm)
 {
     return true;
 }
        /// <summary>
        /// Creates a new permission and adds it to the database.
        /// </summary>
        /// <param name="g">The group to give permission to.</param>
        /// <param name="ent">The entity on which the permissio act.</param>
        /// <param name="perm">The permission to give to the group.</param>
        /// <param name="deny">Whether or not to explicitly deny this permission.</param>
        /// <param name="applytarget">Whether or not the permission applies to this entity (versus its contents).</param>
        /// <param name="applycolls">Whether or not the permission applies to collections within this entity.</param>
        /// <param name="applyassets">Whether or not the permission applies to assets within this entity.</param>
        /// <returns>The new permission entry or null.</returns>
        /// <exception cref="NoPolicyException">If the current user does not have the ability to create a new permission.</exception>
        public static PermissionEntry CreatePermissionEntry(Group g, PermissionableEntity ent, Permission perm, bool deny, bool applytarget, bool applycolls, bool applyassets)
        {
            if (!DoesUserHavePerm(WindchimeSession.Current.User, ent, Permission.EditPermissions))
                throw new NoPermissionException(Permission.EditPermissions);

            if (g == null || ent == null)
                return null;

            PermissionEntry pent = new PermissionEntry();
            pent.GroupID = g.GroupID;
            pent.EntityID = ent.EntityID;
            pent.Permission = (int)perm;
            pent.IsDeny = deny;
            pent.DoesApplyToTarget = applytarget;
            pent.DoesApplyToCollections = applycolls;
            pent.DoesApplyToAssets = applyassets;

            using (WindchimeEntities wce = new WindchimeEntities())
            {
                wce.AddToPermissionEntrySet(pent);
                wce.SaveChanges();
                wce.Detach(pent);
            }

            return pent;
        }