NAME
RT::Asset - Represents a single asset record
DESCRIPTION
An Asset is a small record object upon which zero to many custom fields are applied. The core fields are:
- id
- Name
-
Limited to 255 characters.
- Description
-
Limited to 255 characters.
- Catalog
- Status
- Creator
- Created
- LastUpdatedBy
- LastUpdated
All of these are readable through methods of the same name and mutable through methods of the same name with Set
prefixed. The last four are automatically managed.
METHODS
Load ID or NAME
Loads the specified Asset into the current object.
Create PARAMHASH
Create takes a hash of values and creates a row in the database. Available keys are:
- Name
- Description
- Catalog
-
Name or numeric ID
- CustomField-<ID>
-
Sets the value for this asset of the custom field specified by
<ID>
.<ID>
should be a numeric ID, but may also be a Name if and only if your custom fields have unique names. Without unique names, the behaviour is undefined. - Status
- Owner, HeldBy, Contact
-
A single principal ID or array ref of principal IDs to add as members of the respective role groups for the new asset.
User Names and EmailAddresses may also be used, but Groups must be referenced by ID.
- RefersTo, ReferredToBy, DependsOn, DependedOnBy, Parents, Children, and aliases
-
Any of these link types accept either a single value or arrayref of values parseable by RT::URI.
Returns a tuple of (status, msg) on failure and (id, msg, non-fatal errors) on success, where the third value is an array reference of errors that occurred but didn't prevent creation.
ValidateName NAME
Requires that Names contain at least one non-digit. Empty names are OK.
ValidateCatalog
Takes a catalog name or ID. Returns true if the catalog exists and is not disabled, otherwise false.
Delete
Assets may not be deleted. Always returns failure.
You should disable the asset instead with $asset->SetStatus('deleted')
.
CurrentUserHasRight RIGHTNAME
Returns true if the current user has the right for this asset, or globally if this is called on an unloaded object.
CurrentUserCanSee
Returns true if the current user can see the asset, either because they just created it or they have the ShowAsset right.
URI
Returns this asset's URI
CatalogObj
Returns the RT::Catalog object for this asset's catalog.
SetCatalog
Validates the supplied catalog and updates the column if valid. Transitions Status if necessary. Returns a (status, message) tuple.
Owner
Returns an RT::User object for this asset's Owner role group. On error, returns undef.
HeldBy
Returns an RT::Group object for this asset's HeldBy role group. The object may be unloaded if permissions aren't satisfied.
Contacts
Returns an RT::Group object for this asset's Contact role group. The object may be unloaded if permissions aren't satisfied.
AddRoleMember
Checks ModifyAsset before calling "_AddRoleMember" in RT::Record::Role::Roles.
DeleteRoleMember
Checks ModifyAsset before calling "_DeleteRoleMember" in RT::Record::Role::Roles.
RoleGroup
An ACL'd version of "_RoleGroup" in RT::Record::Role::Roles. Checks ShowAsset.
INTERNAL METHODS
Public methods, but you shouldn't need to call these unless you're extending Assets.
CustomFieldLookupType
ACLEquivalenceObjects
ModifyLinkRight
LoadCustomFieldByIdentifier
Finds and returns the custom field of the given name for the asset, overriding "LoadCustomFieldByIdentifier" in RT::Record to look for catalog-specific CFs before global ones.
PRIVATE METHODS
Documented for internal use only, do not call these from outside RT::Asset itself.
_Set
Checks if the current user can ModifyAsset before calling SUPER::_Set
and records a transaction against this object if SUPER::_Set
was successful.
_Value
Checks "CurrentUserCanSee" before calling SUPER::_Value
.