add_acl()
Add's an ACL. ACO_IDS, ARO_IDS, GROUP_IDS must all be arrays.
bool
add_acl
(array $aco_array, array $aro_array, [array $aro_group_ids = NULL], [array $axo_array = NULL], [array $axo_group_ids = NULL], [int $allow = 1], [int $enabled = 1], [string $return_value = NULL], [string $note = NULL], [string $section_value = NULL], [int $acl_id = FALSE])
-
array
$aco_array: Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...]
-
array
$aro_array: Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...]
-
array
$aro_group_ids: Array of Group IDs
-
array
$axo_array: Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...]
-
array
$axo_group_ids: Array of Group IDs
-
int
$allow: Allow flag
-
int
$enabled: Enabled flag
-
string
$return_value: Return Value
-
string
$note: Note
-
string
$section_value: ACL Section Value
-
int
$acl_id: ACL ID # Specific Request
add_group()
Inserts a group, defaults to be on the "root" branch.
Since v3.3.x you can only create one group with Parent_ID=0 So, its a good idea to create a "Virtual Root" group with Parent_ID=0 Then assign other groups to that.
int
add_group
(string $value, string $name, int $parent_id, [string $group_type = 'ARO'])
-
string
$value: Group Value
-
string
$name: Group Name
-
int
$parent_id: Parent Group ID #
-
string
$group_type: Group Type, either 'ARO' or 'AXO'
add_group_object()
Assigns an Object to a group
bool
add_group_object
(int $group_id, string $object_section_value, string $object_value, [string $group_type = 'ARO'])
-
int
$group_id: Group ID #
-
string
$object_section_value: Object Section Value
-
string
$object_value: Object Value
-
string
$group_type: Group Type, either 'ARO' or 'AXO'
add_object()
Inserts a new object
int
add_object
(string $section_value, string $name, string $value, int $order, int $hidden, [string $object_type = NULL])
-
string
$section_value: Object Section Value
-
string
$name: Object Name
-
string
$value: Object Value
-
int
$order: Display Order
-
int
$hidden: Hidden Flag, either 1 to hide, or 0 to show.
-
string
$object_type: Object Type, either 'ACO', 'ARO', or 'AXO'
add_object_section()
Inserts an object Section
int
add_object_section
(string $name, string $value, int $order, int $hidden, [string $object_type = NULL])
-
string
$name: Object Name
-
string
$value: Object Value
-
int
$order: Display Order
-
int
$hidden: Hidden flag, hides section if 1, shows section if 0
-
string
$object_type: Object Type, either 'ACO', 'ARO', 'AXO', or 'ACL'
append_acl()
Appends objects on to a specific ACL.
bool
append_acl
(int $acl_id, [array $aro_array = NULL], [array $aro_group_ids = NULL], [array $axo_array = NULL], [array $axo_group_ids = NULL], [array $aco_array = NULL])
-
int
$acl_id: ACL ID #
-
array
$aro_array: Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...]
-
array
$aro_group_ids: Array of Group IDs
-
array
$axo_array: Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...]
-
array
$axo_group_ids: Array of Group IDs
-
array
$aco_array: Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...]
clear_database()
Deletes all data from the phpGACL tables. USE WITH CAUTION.
bool
clear_database
()
consolidated_edit_acl()
Add's an ACL but checks to see if it can consolidate it with another one first.
This ONLY works with ACO's and ARO's. Groups, and AXO are excluded. As well this function is designed for handling ACLs with return values, and consolidating on the return_value, in hopes of keeping the ACL count to a minimum.
A return value of false must _always_ be handled outside this function. As this function will remove AROs from ACLs and return false, in most cases you will need to a create a completely new ACL on a false return.
bool
consolidated_edit_acl
(string $aco_section_value, string $aco_value, string $aro_section_value, string $aro_value, string $return_value)
-
string
$aco_section_value: ACO Section Value
-
string
$aco_value: ACO Value
-
string
$aro_section_value: ARO Section Value
-
string
$aro_value: ARO Value
-
string
$return_value: Return Value of ACL
count_all()
Recursively counts elements in an array and sub-arrays.
This is different from count($arg, COUNT_RECURSIVE) in PHP >= 4.2.0, which includes sub-arrays in the count.
int
count_all
([array $arg = NULL])
-
array
$arg: Array to count
del_acl()
Deletes a given ACL
bool
del_acl
(int $acl_id)
-
int
$acl_id: ACL ID # to delete
del_group()
deletes a given group
bool
del_group
(int $group_id, [bool $reparent_children = TRUE], [string $group_type = 'ARO'])
-
int
$group_id: Group ID #
-
bool
$reparent_children: If TRUE, child groups of this group will be reparented to the current group's parent.
-
string
$group_type: Group Type, either 'ARO' or 'AXO'
del_group_object()
Removes an Object from a group.
bool
del_group_object
(int $group_id, string $object_section_value, string $object_value, [string $group_type = 'ARO'])
-
int
$group_id: Group ID #
-
string
$object_section_value: Object Section Value
-
string
$object_value: Object Value
-
string
$group_type: Group Type, either 'ARO' or 'AXO'
del_object()
Deletes a given Object and, if instructed to do so, erase all referencing objects
ERASE feature by: Martino Piccinato
bool
del_object
(int $object_id, [string $object_type = NULL], [bool $erase = FALSE])
-
int
$object_id: Object ID #
-
string
$object_type: Object Type, either 'ACO', 'ARO', or 'AXO'
-
bool
$erase: Erases all referencing objects if TRUE, leaves them alone otherwise.
del_object_section()
Deletes a given Object Section and, if explicitly asked, all the section objects
ERASE feature by: Martino Piccinato
bool
del_object_section
(int $object_section_id, [string $object_type = NULL], [bool $erase = FALSE])
-
int
$object_section_id: Object Section ID # to delete
-
string
$object_type: Object Type, either 'ACO', 'ARO', 'AXO', or 'ACL'
-
bool
$erase: Erases all section objects assigned to the section
edit_acl()
Edit's an ACL, ACO_IDS, ARO_IDS, GROUP_IDS must all be arrays.
bool
edit_acl
(int $acl_id, array $aco_array, array $aro_array, [array $aro_group_ids = NULL], [array $axo_array = NULL], [array $axo_group_ids = NULL], [int $allow = 1], [int $enabled = 1], [string $return_value = NULL], [string $note = NULL], [string $section_value = NULL])
-
int
$acl_id: ACL ID # to edit
-
array
$aco_array: Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...]
-
array
$aro_array: Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...]
-
array
$aro_group_ids: Array of Group IDs
-
array
$axo_array: Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...]
-
array
$axo_group_ids: Array of Group IDs
-
int
$allow: Allow flag
-
int
$enabled: Enabled flag
-
string
$return_value: Return Value
-
string
$note: Note
-
string
$section_value: ACL Section Value
edit_group()
Edits a group
bool
edit_group
(int $group_id, [string $value = NULL], [string $name = NULL], [int $parent_id = NULL], [string $group_type = 'ARO'])
-
int
$group_id: Group ID #
-
string
$value: Group Value
-
string
$name: Group Name
-
int
$parent_id: Parent ID #
-
string
$group_type: Group Type, either 'ARO' or 'AXO'
edit_object()
Edits a given Object
bool
edit_object
(int $object_id, string $section_value, string $name, string $value, int $order, int $hidden, [string $object_type = NULL])
-
int
$object_id: Object ID #
-
string
$section_value: Object Section Value
-
string
$name: Object Name
-
string
$value: Object Value
-
int
$order: Display Order
-
int
$hidden: Hidden Flag, either 1 to hide, or 0 to show
-
string
$object_type: Object Type, either 'ACO', 'ARO', or 'AXO'
edit_object_section()
Edits a given Object Section
bool
edit_object_section
(int $object_section_id, string $name, string $value, int $order, int $hidden, [string $object_type = NULL])
-
int
$object_section_id: Object Section ID #
-
string
$name: Object Section Name
-
string
$value: Object Section Value
-
int
$order: Display Order
-
int
$hidden: Hidden Flag, hide object section if 1, show if 0
-
string
$object_type: Object Type, either 'ACO', 'ARO', 'AXO', or 'ACL'
format_groups()
Takes the array returned by sort_groups() and formats for human consumption. Recursively calls itself to produce the desired output.
array
format_groups
(array $sorted_groups, [array $type = 'TEXT'], int $root_id, int $level, [array $formatted_groups = NULL])
-
array
$sorted_groups: Output from gacl_api->sorted_groups($group_type)
-
array
$type: Output type desired, either 'TEXT', 'HTML', or 'ARRAY'
-
int
$root_id: Root of tree to produce
-
int
$level: Current level of depth
-
array
$formatted_groups: Pass the current formatted groups object for appending via recursion.
get_acl()
Grabs ACL data.
bool
get_acl
(int $acl_id)
get_group_children()
Gets a groups child IDs
array
get_group_children
(int $group_id, [int $group_type = 'ARO'], [string $recurse = 'NO_RECURSE'])
-
int
$group_id: Group ID #
-
int
$group_type: Group Type, either 'ARO' or 'AXO'
-
string
$recurse: Either 'RECURSE' or 'NO_RECURSE', to recurse while fetching group children.
get_group_data()
Gets the group data given the GROUP_ID.
array
get_group_data
(int $group_id, [string $group_type = 'ARO'])
-
int
$group_id: Group ID #
-
string
$group_type: Group Type, either 'ARO' or 'AXO'
get_group_id()
Gets the group_id given the name or value.
Will only return one group id, so if there are duplicate names, it will return false.
int
get_group_id
([string $value = NULL], [string $name = NULL], [string $group_type = 'ARO'])
-
string
$value: Group Value
-
string
$name: Group Name
-
string
$group_type: Group Type, either 'ARO' or 'AXO'
get_group_objects()
Gets all objects assigned to a group.
If $option == 'RECURSE' it will get all objects in child groups as well. defaults to omit child groups.
array
get_group_objects
(int $group_id, [string $group_type = 'ARO'], [string $option = 'NO_RECURSE'])
-
int
$group_id: Group ID #
-
string
$group_type: Group Type, either 'ARO' or 'AXO'
-
string
$option: Option, either 'RECURSE' or 'NO_RECURSE'
get_group_parent_id()
Grabs the parent_id of a given group
int
get_group_parent_id
(int $id, [string $group_type = 'ARO'])
-
int
$id: Group ID #
-
string
$group_type: Group Type, either 'ARO' or 'AXO'
get_object()
Grabs all Objects's in the database, or specific to a section_value
ADORecordSet
get_object
([string $section_value = null], [int $return_hidden = 1], [string $object_type = NULL])
-
string
$section_value: Filter to this section value
-
int
$return_hidden: Returns hidden objects if 1, leaves them out otherwise.
-
string
$object_type: Object Type, either 'ACO', 'ARO', 'AXO', or 'ACL'
get_objects ()
Grabs all Objects in the database, or specific to a section_value
array
get_objects
([string $section_value = NULL], [int $return_hidden = 1], [string $object_type = NULL])
-
string
$section_value: Filter for section value
-
int
$return_hidden: Returns hidden objects if 1, does not if 0
-
string
$object_type: Object Type, either 'ACO', 'ARO', 'AXO'
get_object_data()
Gets all data pertaining to a specific Object.
array
get_object_data
(int $object_id, [string $object_type = NULL])
-
int
$object_id: Object ID #
-
string
$object_type: Object Type, either 'ACO', 'ARO', 'AXO'
get_object_groups()
Gets all groups an object is a member of.
If $option == 'RECURSE' it will get all ancestor groups. defaults to only get direct parents.
array
get_object_groups
(int $object_id, [string $object_type = 'ARO'], [string $option = 'NO_RECURSE'])
-
int
$object_id: Object ID #
-
string
$object_type: Object Type, either 'ARO' or 'AXO'
-
string
$option: Option, either 'RECURSE', or 'NO_RECURSE'
get_object_id()
Gets the object_id given the section_value AND value of the object.
int
get_object_id
(string $section_value, string $value, [string $object_type = NULL])
-
string
$section_value: Object Section Value
-
string
$value: Object Value
-
string
$object_type: Object Type, either 'ACO', 'ARO', 'AXO'
get_object_section_section_id()
Gets the object_section_id given the name AND/OR value of the section.
Will only return one section id, so if there are duplicate names it will return false.
int
get_object_section_section_id
([string $name = NULL], [string $value = NULL], [string $object_type = NULL])
-
string
$name: Object Name
-
string
$value: Object Value
-
string
$object_type: Object Type, either 'ACO', 'ARO', 'AXO', or 'ACL'
get_object_section_value()
Gets the object_section_value given object id
string
get_object_section_value
(int $object_id, [string $object_type = NULL])
-
int
$object_id: Object ID #
-
string
$object_type: Object Type, either 'ACO', 'ARO', or 'AXO'
get_root_group_id ()
Grabs the id of the root group for the specified tree
int
get_root_group_id
([string $group_type = 'ARO'])
-
string
$group_type: Group Type, either 'ARO' or 'AXO'
get_schema_version()
Grabs phpGACL schema version from the database.
string
get_schema_version
()
get_section_data()
Gets the section data given the Section Value
array
get_section_data
(string $section_value, [string $object_type = NULL])
-
string
$section_value: Section Value
-
string
$object_type: Object Type, either 'ACO', 'ARO', or 'AXO'
get_ungrouped_objects()
Grabs ID's of all Objects (ARO's and AXO's only) in the database not assigned to a Group.
This function is useful for applications that synchronize user databases with an outside source. If syncrhonization doesn't automatically place users in an appropriate group, this function can quickly identify them so that they can be assigned to the correct group.
array
get_ungrouped_objects
([int $return_hidden = 1], [string $object_type = NULL])
-
int
$return_hidden: Returns hidden objects if 1, does not if 0.
-
string
$object_type: Object Type, either 'ARO' or 'AXO' (groupable types)
get_version()
Grabs phpGACL version from the database.
string
get_version
()
is_conflicting_acl()
Checks for conflicts when adding a specific ACL.
bool
is_conflicting_acl
(array $aco_array, array $aro_array, [array $aro_group_ids = NULL], [array $axo_array = NULL], [array $axo_group_ids = NULL], [array $ignore_acl_ids = NULL])
-
array
$aco_array: Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...]
-
array
$aro_array: Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...]
-
array
$aro_group_ids: Array of Group IDs
-
array
$axo_array: Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...]
-
array
$axo_group_ids: Array of Group IDs
-
array
$ignore_acl_ids: Array of ACL IDs to ignore from the result set.
rebuild_tree ()
rebuilds the group tree for the given type
bool
rebuild_tree
([string $group_type = 'ARO'], [int $group_id = NULL], [int $left = 1])
-
string
$group_type: Group Type, either 'ARO' or 'AXO'
-
int
$group_id: Group ID #
-
int
$left: Left value of Group
search_acl()
Searches for ACL's with specified objects mapped to them.
NULL values are included in the search, if you want to ignore for instance aro_groups use FALSE instead of NULL.
array
search_acl
([string $aco_section_value = NULL], [string $aco_value = NULL], [string $aro_section_value = NULL], [string $aro_value = NULL], [string $aro_group_name = NULL], [string $axo_section_value = NULL], [string $axo_value = NULL], [string $axo_group_name = NULL], [string $return_value = NULL])
-
string
$aco_section_value: ACO Section Value
-
string
$aco_value: ACO Value
-
string
$aro_section_value: ARO Section Value
-
string
$aro_value: ARO Value
-
string
$aro_group_name: ARO Group Name
-
string
$axo_section_value: AXO Section Value
-
string
$axo_value: AXO Value
-
string
$axo_group_name: AXO Group Name
-
string
$return_value: Return Value
shift_acl()
Opposite of append_acl(). Removes objects from a specific ACL. (named after PHP's array_shift())
bool
shift_acl
(int $acl_id, [array $aro_array = NULL], [array $aro_group_ids = NULL], [array $axo_array = NULL], [array $axo_group_ids = NULL], [array $aco_array = NULL])
-
int
$acl_id: ACL ID #
-
array
$aro_array: Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...]
-
array
$aro_group_ids: Array of Group IDs
-
array
$axo_array: Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...]
-
array
$axo_group_ids: Array of Group IDs
-
array
$aco_array: Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...]
showarray()
Dump all contents of an array in HTML (kinda)
void
showarray
(array $array)
sort_groups()
Grabs all the groups from the database doing preliminary grouping by parent
array
sort_groups
([string $group_type = 'ARO'])
-
string
$group_type: Group Type, either 'ARO' or 'AXO'
_rebuild_tree ()
Utility recursive function called by rebuild_tree()
int
_rebuild_tree
(string $table, int $group_id, [int $left = 1])
-
string
$table: Table name of group type
-
int
$group_id: Group ID #
-
int
$left: Left value of Group
Inherited Methods
Inherited From gacl
gacl::gacl()
gacl::acl_check()
gacl::acl_check_array()
gacl::acl_get_groups()
gacl::acl_query()
gacl::acl_return_value()
gacl::debug_db()
gacl::debug_text()
gacl::get_cache()
gacl::put_cache()