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

DEPRECATED since version 2.00b. Use new_user or edit_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

DEPRECATED since version 2.00b. Use new_zone or edit_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