Changes since version 1.06x
There have been a number of changes to the overall system since version 1.06 some of which affect the way the API behaves, and there have also been a number of changes to functions in the API independent of the system changes.
System Changes.
- Permissions
-
NicTool now uses an action-oriented permissions system. Group objects may be created with specific sets of permissions defining what actions are allowed by users inside the group. Users can be created with their own set of permissions, or by default they inherit the permissions defined for their group. The Permissions define what types of objects can be created, deleted, modified, or delegated. (See new_user and new_group)
- Delegation
-
Users of NicTool can now "Delegate" Zones and Zone Records to any of the sub-groups available to them. They can specify what the delegate group can do to the delegated Zone or Record, including modify,re-delegate, and remove delegation. In addition they can specify whether Zone Records can be added to or deleted from a delegated Zone. Delegation provides a way for certain groups of users to have limited access to Zones and Records. One application of this feature is that it enables administrators to delegate reverse-lookup Zones and Records ("in-addr.arpa" zones) to an appropriate person. (See delegate_zones and delegate_zone_records.)
- Nameservers
-
With the Permissions and Delegation changes made to the system, the behavior of Nameserver objects needed to be changed as well. When a new Group is created, you must now specify the list of Nameserver objects that users in that group may publish zones to. (See new_group and edit_group.)
- Creating/Modifying Objects
-
In version 1.06, the function save_X was used both to create and modify objects of type X. Each of those functions has been split into new_X and edit_X. This is a less clutered protocol.
API Changes.
- List parameters
-
Some functions take some kind of "list" as a parameter. In version 1.06 it was required to be a comma-separated string. You can now specify the list as a true array as well. A comma-separated string is still allowed for backwards compatibility.
- get_user
-
The parameter nt_group_id was unneeded and should no longer be included.
- save_user
- new_user
-
Use this function to create new User objects. You can specify all of the permissions parameters or you can include the parameter inherit_group_permissions with a value of '1' to explicitly have permissions inherited from the user's group.
- edit_user
-
Use this function to modify existing User objects.
- save_group
-
DEPRECATED since version 2.00b. Use new_group or edit_group.
- new_group
-
Use this function to create new Group objects.
- edit_group
-
Use this function to modify existing Group objects.
- delete_group
-
The parameter nt_group_id now specifies the group that should be deleted, and the parameter gid is no longer used.
- save_zone
- new_zone
-
Use this function to create new Zone objects.
- edit_zone
-
Use this function to modify existing Zone objects. You can undelete a deleted zone by including the parameter deleted with a value of '0'.
- save_zone_record
-
DEPRECATED since version 2.00b. Use new_zone_record or edit_zone_record.
- new_zone_record
-
Use this function to create new Zone Record objects.
- edit_zone_record
-
Use this function to modify existing Zone Record objects.
- save_nameserver
-
DEPRECATED since version 2.00b. Use new_nameserver or edit_nameserver.
- new_nameserver
-
Use this function to create new Nameserver objects.
- edit_nameserver
-
Use this function to modify existing Nameserver objects.
- get_group_zones
-
You can now search for zones that have been deleted by including the parameter search_deleted with a value of '1'.
API Additions.
- get_group_permissions
-
Get the permissions settings for a particular group (new since version 1.06x).
- get_user_permissions
-
Get the permissions settings for a particular user (new since version 1.06x).
- delegate_zones
-
Delegate a list of Zones to a certain group (new since version 1.06x).
- delegate_zone_record
-
Delegate a list of Zone Records to a certain group (new since version 1.06x).
- edit_zone_delegation
-
Modify the delegation permissions of a Zone delegated to a certain Group (new since version 1.06x).
- edit_zone_record_delegation
-
Modify the delegation permissions of a Zone Record delegated to a certain Group (new since version 1.06x).
- delete_zone_delegation
-
Remove the delegation of a Zone to a Group (new since version 1.06x).
- delete_zone_record_delegation
-
Remove the delegation of a Zone Record to a Group (new since version 1.06x).
- get_delegated_zones
-
Get a list of Zones that have been delegated to the specified Group (new since version 1.06x).
- get_delegated_zone_records
-
Get a list of Zone Records that have been delegated to the specified Group (new since version 1.06x).
- get_zone_delegates
-
Get a list of Groups that have been delegated the specified Zone (new since version 1.06x).
- get_zone_record_delegates
-
Get a list of Groups that have been delegated the specified Zone Record (new since version 1.06x).
New Sanity Checks. XXX