public void Delete(AlumniFeaturePermission alumniFeaturePermission) { using (var uow = this.GetUnitOfWork()) { var alumniFeaturePermissionRepository = uow.GetRepository <AlumniFeaturePermission>(); alumniFeaturePermissionRepository.Delete(alumniFeaturePermission); uow.Commit(); } }
//public int GetPermissionType(long subjectId, long featureId) //{ // using (var uow = this.GetUnitOfWork()) // { // var featurePermission = Find(subjectId, featureId); // if (featurePermission != null) // { // return (int)featurePermission.PermissionType; // } // return 2; // } //} //public bool HasAccess(long? subjectId, long featureId) //{ // using (var uow = this.GetUnitOfWork()) // { // var featureRepository = uow.GetReadOnlyRepository<Feature>(); // var subjectRepository = uow.GetReadOnlyRepository<Subject>(); // var feature = featureRepository.Get(featureId); // var subject = subjectId == null ? null : subjectRepository.Query(s => s.Id == subjectId).FirstOrDefault(); // // Anonymous // if (subject == null) // { // while (feature != null) // { // if (Exists(null, feature.Id, PermissionType.Grant)) // return true; // feature = feature.Parent; // } // return false; // } // // Non-Anonymous // while (feature != null) // { // if (Exists(null, feature.Id, PermissionType.Grant)) // return true; // if (Exists(subject.Id, feature.Id, PermissionType.Deny)) // return false; // if (Exists(subject.Id, feature.Id, PermissionType.Grant)) // return true; // if (subject is User) // { // var user = subject as User; // var groupIds = user.Groups.Select(g => g.Id).ToList(); // if (Exists(groupIds, new[] { feature.Id }, PermissionType.Deny)) // { // return false; // } // if (Exists(groupIds, new[] { feature.Id }, PermissionType.Grant)) // { // return true; // } // } // feature = feature.Parent; // } // return false; // } //} ////public bool HasAccess(Subject subject, Feature feature) ////{ //// using (var uow = this.GetUnitOfWork()) //// { //// var featureRepository = uow.GetReadOnlyRepository<Feature>(); //// var subjectRepository = uow.GetReadOnlyRepository<Subject>(); //// // Anonymous //// if (subject == null) //// { //// while (feature != null) //// { //// if (Exists(null, feature.Id, PermissionType.Grant)) //// return true; //// feature = feature.Parent; //// } //// return false; //// } //// // Non-Anonymous //// while (feature != null) //// { //// if (Exists(null, feature.Id, PermissionType.Grant)) //// return true; //// if (Exists(subject.Id, feature.Id, PermissionType.Deny)) //// return false; //// if (Exists(subject.Id, feature.Id, PermissionType.Grant)) //// return true; //// if (subject is User) //// { //// var user = subject as User; //// var groupIds = user.Groups.Select(g => g.Id).ToList(); //// if (Exists(groupIds, new[] { feature.Id }, PermissionType.Deny)) //// { //// return false; //// } //// if (Exists(groupIds, new[] { feature.Id }, PermissionType.Grant)) //// { //// return true; //// } //// } //// feature = feature.Parent; //// } //// return false; //// } ////} //public bool HasAccess<T>(string subjectName, string module, string controller, string action) where T : Subject //{ // using (var uow = this.GetUnitOfWork()) // { // var operationRepository = uow.GetReadOnlyRepository<Operation>(); // var SubjectRepository = uow.GetReadOnlyRepository<Subject>(); // var operation = operationRepository.Query(x => x.Module.ToUpperInvariant() == module.ToUpperInvariant() && x.Controller.ToUpperInvariant() == controller.ToUpperInvariant() && x.Action.ToUpperInvariant() == action.ToUpperInvariant()).FirstOrDefault(); // var feature = operation?.Feature; // var subject = SubjectRepository.Query(s => s.Name.ToUpperInvariant() == subjectName.ToUpperInvariant() && s is T).FirstOrDefault(); // if (feature != null && subject != null) // return HasAccess(subject.Id, feature.Id); // return false; // } //} public void Update(AlumniFeaturePermission entity) { using (var uow = this.GetUnitOfWork()) { var repo = uow.GetRepository <AlumniFeaturePermission>(); repo.Merge(entity); var merged = repo.Get(entity.Id); repo.Put(merged); uow.Commit(); } }
public static FeaturePermission ToFeaturePermission(AlumniFeaturePermission alumniFeaturePermission) { var featurePermission = new FeaturePermission { Feature = alumniFeaturePermission.Feature, PermissionType = alumniFeaturePermission.PermissionType, Subject = alumniFeaturePermission.Subject }; return(featurePermission); }
public static AlumniFeaturePermission ToAlumniFeaturePermission(FeaturePermission featurePermission) { var alumniFeaturePermission = new AlumniFeaturePermission { Feature = featurePermission.Feature, PermissionType = featurePermission.PermissionType, Subject = featurePermission.Subject }; return(alumniFeaturePermission); }
public void Create(Subject subject, Feature feature, PermissionType permissionType = PermissionType.Grant) { using (var uow = this.GetUnitOfWork()) { var subjectRepository = uow.GetReadOnlyRepository <Subject>(); var featureRepository = uow.GetReadOnlyRepository <Feature>(); var alumniFeaturePermission = new AlumniFeaturePermission() { Subject = subjectRepository.Get(subject.Id), Feature = featureRepository.Get(feature.Id), PermissionType = permissionType }; var alumniFeaturePermissionRepository = uow.GetRepository <AlumniFeaturePermission>(); alumniFeaturePermissionRepository.Put(alumniFeaturePermission); uow.Commit(); } }
public void Create(long?subjectId, long featureId, BExIS.Security.Entities.Authorization.PermissionType permissionType) { using (var uow = this.GetUnitOfWork()) { var featureRepository = uow.GetReadOnlyRepository <Feature>(); var subjectRepository = uow.GetReadOnlyRepository <Subject>(); if (Exists(subjectId, featureId, permissionType)) { return; } var alumniFeaturePermission = new AlumniFeaturePermission { Feature = featureRepository.Get(featureId), PermissionType = permissionType, Subject = subjectId == null ? null : subjectRepository.Query(s => s.Id == subjectId).FirstOrDefault() }; var alumniFeaturePermissionRepository = uow.GetRepository <AlumniFeaturePermission>(); alumniFeaturePermissionRepository.Put(alumniFeaturePermission); uow.Commit(); } }