IP Library Granted Patent US 11,593,504
Granted Patent B1
US 11,593,504 · App. 16/514,805 · Granted Feb 28, 2023

Systems and methods for manipulating pruned tree sets to determine access regions in a hypercube

Inventors: John Yates (Mountain View, CA); Mark Hampton (Friday Harbor, WA); Francis Wang (Foster City, CA); Lian Zheng (San Jose, CA); Thomas Nguyen (San Jose, CA)
Assignee: Workday, Inc.
G06F21/6227G06F16/283G06F16/9027G06F2221/2141
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,593,504
App. No.
16/514,805
Granted
Feb 28, 2023
Kind
B1
Abstract

A system for determining access for a hypercube includes an interface configured to receive a request for access from a user to data in a location in a hypercube; receive a tree structure with subcubes of the hypercube arranged in a hierarchical structure; and receive a user permission list, wherein an element of the user permission list comprises a permission, a root node, and a set of pruned nodes. The system also includes a processor configured to determine a user permission associated with the data in the location of the hypercube using the user permission list; and provide an indication of the user permission.

Claims (53)

1. A system for determining access for a hypercube, comprising:

an interface configured to:

receive a request for access from a user to data in a location in a hypercube;

receive a tree structure with subcubes of the hypercube arranged in a hierarchical structure; and

receive a user permission list, wherein an element of the user permission list comprises a permission, a root node, and a set of pruned nodes, wherein the permission does not apply to the set of pruned nodes; and

a hardware processor configured to:

determine a user permission associated with the data in the location of the hypercube using the user permission list, wherein determining the user permission is based at least in part on whether a node associated with the location in the hypercube is pruned from a tree rooted at the root node;

provide an indication of the user permission; and

receive an access region comprising a set of access region dimension values, an access region user or set of users, and an access region permission;

modify a tree structure of dimension values to allow description of the set of access region dimension values using the root node and the set of pruned nodes;

create a permission list element comprising the user or set of users, the permission, the root node, and the set of pruned nodes; and

add the permission list element to a global permission list.

2. The system of claim 1 , wherein the hardware processor is further configured to provide the data in the location in the hypercube to the user according to the user permission.

3. The system of claim 2 , wherein, in response to determining that the user permission comprises write permission, providing the data in the location in the hypercube to the user according to the user permission comprises providing the data in the location in the hypercube to the user along with an ability to modify the data in the location in the hypercube.

4. The system of claim 2 , wherein, in response to determining that the user permission comprises import and notes permission, providing the data in the location in the hypercube to the user according to the user permission comprises allowing the user to import into and/or write notes for the data in the location.

5. The system of claim 2 , wherein, in response to determining that the user permission comprises read except notes permission, providing the data in the location in the hypercube to the user according to the user permission comprises providing read access to the data in the location in the hypercube to the user without providing access to notes associated with the data in the location in the hypercube.

6. The system of claim 2 , wherein, in response to determining that the user permission comprises read permission, providing the data in the location in the hypercube to the user according to the user permission comprises providing read access to the data in the location in the hypercube to the user.

7. The system of claim 2 , wherein, in response to determining that the user permission comprises read with no splits permission, providing the data in the location in the hypercube to the user according to the user permission comprises allowing the user to access information by reading the location but not allowing reading a transaction information.

8. The system of claim 2 , wherein, in response to determining that the user permission comprises no permission, providing the data in the location in the hypercube to the user according to the user permission comprises providing no access to the data in the location in the hypercube to the user.

9. The system of claim 1 , wherein determining the user permission comprises:

selecting a node associated with the location of the data in the hypercube,

determining that the selected node is descendent from the root node of the element; and

determining that the selected node is not descendent from a pruned node of the set of pruned nodes.

10. The system of claim 1 , wherein determining a user permission comprises generating a sorted user permission list by sorting the user permission list.

11. The system of claim 10 , wherein the sorted user permission list is sorted from most to least permissive permission associated with a first element, wherein for the first element of the sorted user permission list that the user is determined to have permission, assigning the permission of the element to the location of the data in the hypercube.

12. The system of claim 10 , wherein the sorted user permission list is sorted from least to most permissive permission associated with a first element, wherein for the first element of the sorted user permission list that the user is determined to have permission, assigning the permission of the element to the location of the data in the hypercube.

13. The system of claim 1 , wherein the permission comprises one of: write permission, import and notes permission, read except notes permission, read permission, read with no splits permission, or no permission.

14. The system of claim 1 , wherein the element of the user permission list further comprises a dimension associated with the element.

15. The system of claim 1 , wherein the user permission list comprises a subset of a global permission list comprising entries of the global permission list associated with the user.

16. The system of claim 1 , wherein modifying the tree structure of dimension values to allow description of the set of access region dimension values using the root node and the set of pruned nodes comprises adding a new node to the tree structure corresponding to the set of access region dimension values.

17. The system of claim 1 , wherein modifying the tree structure of dimension values to allow description of the set of dimension values using the root node and the set of pruned nodes comprises adding a new subtree to the tree structure corresponding to the set of access region dimension values.

18. The system of claim 1 , wherein modifying the tree structure of dimension values to allow description of the set of access region dimension values using the root node and the set of pruned nodes comprises adding a new node to the tree structure corresponding to the pruned set of dimension values for pruning.

19. The system of claim 18 , wherein a subtree rooted at an ancestor node comprising an ancestor of the new node, wherein the new node is pruned from the subtree, corresponds to the set of access region dimension values.

20. A method for determining access for a hypercube, comprising:

receiving a request for access from a user to data in a location in a hypercube;

receiving a tree structure with subcubes of the hypercube arranged in a hierarchical structure;

receiving a user permission list, wherein an element of the user permission list comprises a permission, a root node, and a set of pruned nodes, wherein the permission does not apply to the set of pruned nodes;

determining, using a hardware processor, a user permission associated with the data in the location of the hypercube using the user permission list, wherein determining the user permission is based at least in part on whether a node associated with the location in the hypercube is pruned from a tree rooted at the root node;

providing an indication of the user permission; and

receiving an access region comprising a set of access region dimension values, an access region user or set of users, and an access region permission;

modifying a tree structure of dimension values to allow description of the set of access region dimension values using the root node and the set of pruned nodes;

creating a permission list element comprising the user or set of users, the permission, the root node, and the set of pruned nodes; and

adding the permission list element to a global permission list.

21. A computer program product for determining access for a hypercube, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving a request for access from a user to data in a location in a hypercube;

receiving a tree structure with subcubes of the hypercube arranged in a hierarchical structure;

receiving a user permission list, wherein an element of the user permission list comprises a permission, a root node, and a set of pruned nodes, wherein the permission does not apply to the set of pruned nodes;

determining a user permission associated with the data in the location of the hypercube using the user permission list, wherein determining the user permission is based at least in part on whether a node associated with the location in the hypercube is pruned from a tree rooted at the root node;

providing an indication of the user permission; and

receiving an access region comprising a set of access region dimension values, an access region user or set of users, and an access region permission;

modifying a tree structure of dimension values to allow description of the set of access region dimension values using the root node and the set of pruned nodes;

creating a permission list element comprising the user or set of users, the permission, the root node, and the set of pruned nodes; and

adding the permission list element to a global permission list.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2019
From: ADAPTIVE INSIGHTS LLC
To: WORKDAY, INC.
Reel/Frame 050931/0879 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2019
From: YATES, JOHN; HAMPTON, MARK; WANG, FRANCIS; ZHENG, LIAN; NGUYEN, THOMAS
To: ADAPTIVE INSIGHTS LLC
Reel/Frame 050459/0446 →
Cited By (3)
US 12,524,538 US 12,561,307 US 12,632,438