コード例 #1
0
ファイル: RBACHelper.cs プロジェクト: driverpt/SI-1213SI
        public Permission[] GetUserPermissions(Session userSession)
        {
            // Check if all roles in session are assigned to user

            List<Permission> permissions = new List<Permission>();
            if (userSession == null)
            {
                return null;
            }

            List<Role> allUserRoles = null;
            try
            {
                allUserRoles = GetUserRolesHierarchy(userSession.User.Id);

            }
            catch (Exception)
            {

            }

            foreach (Role role in userSession.Roles)
            {
                if (allUserRoles.FirstOrDefault((r) => { return r.Id == role.Id;}) == null)
                {
                    return null;
                }
            }

            // Check if roles in session have access to the permission
            foreach(Role role in userSession.Roles)
            {
                foreach (Role childRole in GetAllChildRoles(role))
                {
                    // Checking if we have the pair Role <-> Permission
                    foreach (PermissionAssigment pa in permissionAssigmentRepository.LoadByRoleId(role.Id))
                    {
                        permissions.Add(pa.Permission);
                    }
                }
            }

            return permissions.Distinct(new Permission()).ToArray();
        }
コード例 #2
0
ファイル: RBACHelper.cs プロジェクト: driverpt/SI-1213SI
        public Boolean UserIsAllowed(Session userSession, Permission permission)
        {
            // Check if all roles in session are assigned to user

            List<Role> allUserRoles = null;
            try
            {
                allUserRoles = GetUserRolesHierarchy(userSession.User.Id);

            }
            catch (Exception ex)
            {

            }

            foreach (Role role in userSession.Roles)
            {
                if (allUserRoles.FirstOrDefault((r) => { return r.Id == role.Id;}) == null)
                {
                    return false;
                }
            }

            // Check if roles in session have access to the permission
            foreach(Role role in userSession.Roles)
            {
                foreach (Role childRole in GetAllChildRoles(role))
                {
                    // Checking if we have the pair Role <-> Permission
                    foreach (PermissionAssigment pa in permissionAssigmentRepository.LoadByRoleId(role.Id))
                    {
                        if (pa.Permission.Id == permission.Id)
                        {
                            return true;
                        }
                    }
                }
            }
            return false;
        }
コード例 #3
0
ファイル: RBACHelper.cs プロジェクト: driverpt/SI-1213SI
        public Boolean UserIsAllowed(Session userSession, Permission permission)
        {
            Permission[] permissions = GetUserPermissions(userSession);

            Permission perm = permissions.FirstOrDefault((p)=> { return p.Description == permission.Description; });

            return perm != null;
        }