Exemplo n.º 1
0
 public void Delete(FeaturePermission featurePermission)
 {
     using (var uow = this.GetUnitOfWork())
     {
         var featurePermissionRepository = uow.GetRepository <FeaturePermission>();
         featurePermissionRepository.Delete(featurePermission);
         uow.Commit();
     }
 }
Exemplo n.º 2
0
        public UserDetails GetUserDetails(Guid id)
        {
            var jarvisUser = _userRepository.Get(id);
            // ToDO: Add with validation - Need a View Model -- UserDetailsViewModel....
            var userDetails = new UserDetails()
            {
                Id          = jarvisUser.Id,
                Email       = jarvisUser.Email,
                UserName    = jarvisUser.UserName,
                Disabled    = jarvisUser.Disabled,
                UserType    = jarvisUser.UserType,
                IsSuperUser = jarvisUser.IsSuperUser,
                FirstName   = jarvisUser.FirstName,
                LastName    = jarvisUser.LastName
            };
            // Todo:If Super User then no need to check the below
            var applicationPermissions = new List <ApplicationPermission>();

            foreach (var userAppRole in jarvisUser.UserAppRoleMappings)
            {
                // Use this Join roleDetails -- It has all required details
                var roleDetails = _roleRepository.GetRelatedPrivilegesForRoleAndApp(userAppRole.RoleId,
                                                                                    userAppRole.ApplicationId);
                if (roleDetails.Count > 0)
                {
                    var applicationPermission = new ApplicationPermission();
                    applicationPermission.Id     = userAppRole.ApplicationId;
                    applicationPermission.Name   = roleDetails[0].ApplicationName;
                    applicationPermission.RoleId = userAppRole.Role.Id;
                    applicationPermission.Role   = roleDetails[0].RoleName;

                    Dictionary <int, FeaturePermission> featurePermissions = new Dictionary <int, FeaturePermission>();
                    foreach (var roleDetail in roleDetails)
                    {
                        FeaturePermission featurePermission = new FeaturePermission();
                        featurePermission.FeatureTypeId   = roleDetail.FeatureTypeId;
                        featurePermission.TypeName        = roleDetail.FeatureTypeName;
                        featurePermission.Label           = roleDetail.FeatureLabel;
                        featurePermission.ParentFeatureId = roleDetail.ParentFeatureId;
                        featurePermission.Order           = roleDetail.Order;
                        featurePermission.Privileges      = roleDetail.Privileges;

                        // Todo: May be no need to add the Dictionary -- The below array should be OK
                        applicationPermission.FeaturePermissions.Add(featurePermission.FeatureTypeId, featurePermission);

                        // Added if we need the fearures as an array
                        applicationPermission.FeaturesList.Add(featurePermission);
                    }

                    applicationPermissions.Add(applicationPermission);
                }
            }
            userDetails.ApplicationPermissions = applicationPermissions;
            return(userDetails);
        }
Exemplo n.º 3
0
 public void Update(FeaturePermission entity)
 {
     using (var uow = this.GetUnitOfWork())
     {
         var repo = uow.GetRepository <FeaturePermission>();
         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);
        }
Exemplo n.º 6
0
        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 featurePermission = new FeaturePermission()
                {
                    Subject        = subjectRepository.Get(subject.Id),
                    Feature        = featureRepository.Get(feature.Id),
                    PermissionType = permissionType
                };

                var featurePermissionRepository = uow.GetRepository <FeaturePermission>();
                featurePermissionRepository.Put(featurePermission);
                uow.Commit();
            }
        }
        public async Task <PermissionStatus> RequestPermissionAsync(FeaturePermission featurePermission)
        {
            var permission = ToPermission(featurePermission);
            var status     = await _permissions.CheckPermissionStatusAsync(permission);

            var now = DateTime.Now;

            if (status != Plugin.Permissions.Abstractions.PermissionStatus.Granted &&
                (!_previousRequests.ContainsKey(featurePermission) || _previousRequests[featurePermission].Add(RequestTimeout) < now))
            {
                _previousRequests[featurePermission] = now;
                var results = await _permissions.RequestPermissionsAsync(permission);

                if (results.ContainsKey(permission))
                {
                    status = results[permission];
                }
            }

            return((PermissionStatus)status);
        }
Exemplo n.º 8
0
        public void Create(long?subjectId, long featureId, PermissionType permissionType)
        {
            using (var uow = this.GetUnitOfWork())
            {
                var featureRepository = uow.GetReadOnlyRepository <Feature>();
                var subjectRepository = uow.GetReadOnlyRepository <Subject>();

                if (Exists(subjectId, featureId, permissionType))
                {
                    return;
                }

                var featurePermission = new FeaturePermission
                {
                    Feature        = featureRepository.Get(featureId),
                    PermissionType = permissionType,
                    Subject        = subjectId == null ? null : subjectRepository.Query(s => s.Id == subjectId).FirstOrDefault()
                };

                var featurePermissionRepository = uow.GetRepository <FeaturePermission>();
                featurePermissionRepository.Put(featurePermission);
                uow.Commit();
            }
        }
        private Permission ToPermission(FeaturePermission featurePermission)
        {
            var name = Enum.GetName(typeof(FeaturePermission), featurePermission);

            return((Permission)Enum.Parse(typeof(Permission), name));
        }
 public async Task <PermissionStatus> CheckPermissionStatusAsync(FeaturePermission featurePermission)
 {
     return((PermissionStatus)await _permissions.CheckPermissionStatusAsync(ToPermission(featurePermission)));
 }
Exemplo n.º 11
0
        /*  public List<ApolloUser> GetAllUsersBasedOnUserType(Domain.Enum.UserType userType)
         * {
         *   return _userRepository.FindSupportUsers(user => user.UserTypeId == (int)userType).ToList();
         *  // return _userRepository.GetSupportUsers();
         * }
         */
        public UserDetails GetUserDetails(Guid id)
        {
            var user        = _userRepository.Get(id);
            var userDetails = new UserDetails()
            {
                Id          = user.Id,
                Email       = user.Email,
                UserName    = user.UserName,
                FirstName   = user.FirstName,
                LastName    = user.LastName,
                IsActive    = user.IsActive,
                UserTypeId  = user.UserTypeId,
                PhoneNumber = user.PhoneNumber,
            };
            var applicationPermissions = new List <ApplicationPermission>();

            foreach (var userAppRole in user.UserAppRoleMappings)
            {
                List <RolePrivilege> roleDetails = new List <RolePrivilege>();

                if (userDetails.UserTypeId == (int)Apollo.Domain.Enum.UserType.SupportUser)
                {
                    roleDetails =
                        _roleRepository.GetRelatedPrivilegesForRoleAndApp(userAppRole.RoleId, userAppRole.ApplicationId);
                }
                else if (userDetails.UserTypeId == (int)Apollo.Domain.Enum.UserType.SocietyUser)
                {
                    roleDetails =
                        _roleRepository.GetRelatedPrivilegesForRoleAppAndSociety
                            (userAppRole.RoleId, userAppRole.ApplicationId, userAppRole.SocietyId);
                }

                if (roleDetails.Count > 0)
                {
                    var applicationPermission = new ApplicationPermission();
                    applicationPermission.Id     = userAppRole.ApplicationId;
                    applicationPermission.Name   = roleDetails[0].ApplicationName;
                    applicationPermission.RoleId = userAppRole.Role.Id;
                    applicationPermission.Role   = roleDetails[0].RoleName;

                    Dictionary <int, FeaturePermission> featurePermissions = new Dictionary <int, FeaturePermission>();
                    foreach (var roleDetail in roleDetails)
                    {
                        FeaturePermission featurePermission = new FeaturePermission();
                        featurePermission.FeatureTypeId   = roleDetail.FeatureTypeId;
                        featurePermission.TypeName        = roleDetail.FeatureTypeName;
                        featurePermission.Label           = roleDetail.FeatureLabel;
                        featurePermission.ParentFeatureId = roleDetail.ParentFeatureId;
                        featurePermission.Order           = roleDetail.Order;
                        featurePermission.Privileges      = roleDetail.Privileges;

                        applicationPermission.FeaturesList.Add(featurePermission);
                    }

                    applicationPermissions.Add(applicationPermission);
                }
            }

            userDetails.ApplicationPermissions = applicationPermissions;
            return(userDetails);
        }