java.lang.Object
com.inductiveautomation.ignition.common.user.PyUser
All Implemented Interfaces:
Countable, Extendable<PropertySet>, Mergable<PropertySet>, MutablePropertyValueSource, PropertySet, PropertyValueSource, User, Serializable, Iterable<PropertyValue>

public class PyUser extends Object implements User
A User implementation that delegates to another user object, but has some methods that are more scripting friendly.
See Also:
  • Constructor Details

    • PyUser

      public PyUser(User user)
  • Method Details

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • get

      public Object get(String propertyName)
    • contains

      public boolean contains(Property<?> prop)
      Specified by:
      contains in interface PropertyValueSource
      Returns:
      True if the source contains a value for prop.
    • getOrDefault

      public <T> T getOrDefault(Property<T> prop)
      Specified by:
      getOrDefault in interface PropertyValueSource
      Returns:
      The value for prop or Property.getDefaultValue() if not present. Can return null if the value is null.
    • get

      public <T> T get(Property<T> prop)
      Description copied from interface: PropertyValueSource
      Retrieves the value of the property, or null if this set doesn't contain that property.
      Specified by:
      get in interface PropertyValueSource
    • getOrElse

      public <T> T getOrElse(Property<T> property, T value)
      Description copied from interface: PropertyValueSource
      Get the value for a given Property, or else fall back to value if it's not present.
      Specified by:
      getOrElse in interface PropertyValueSource
      Parameters:
      property - The Property for which a value is to be retrieved.
      value - The value to default to if property isn't present.
      Returns:
      The value of property if present, value if not. Can return null if the value is null.
    • iterator

      @Nonnull public Iterator<PropertyValue> iterator()
      Specified by:
      iterator in interface Iterable<PropertyValue>
    • set

      public <T> void set(Property<T> prop, T value)
      Specified by:
      set in interface MutablePropertyValueSource
    • set

      public void set(PropertyValue propValue)
      Specified by:
      set in interface MutablePropertyValueSource
    • set

      public void set(String propertyName, Object propValue)
    • remove

      public void remove(Property<?> prop)
      Specified by:
      remove in interface MutablePropertyValueSource
    • getCount

      public int getCount()
      Specified by:
      getCount in interface Countable
    • getProperties

      public Collection<Property<?>> getProperties()
      Specified by:
      getProperties in interface PropertyValueSource
    • getValues

      public List<PropertyValue> getValues()
      Description copied from interface: PropertyValueSource
      Returns the opaque PropertyValue objects. This can be useful when you want to avoid the strict type checking of the value, and it's important to note that if the property is bound, the value will be a BoundValue. Be very careful about overriding, and make sure to maintain the methodology of using getProperties to iterate and get (or getOrDefault), to get the value, because those are all handled differently by BoundPropertySets, ExtendedPropertySets, etc.
      Specified by:
      getValues in interface PropertyValueSource
    • isExtended

      public boolean isExtended(Property<?> prop)
      Description copied from interface: PropertySet
      Returns whether this property set contains a value for the prop, and the prop was actually inherited. In other words, this is true if the property is inherited, and an override value is present.
      Specified by:
      isExtended in interface PropertySet
    • isInherited

      public boolean isInherited(Property<?> prop)
      Description copied from interface: PropertySet
      Indicates whether the property was inherited from a parent type.
      Specified by:
      isInherited in interface PropertySet
    • merge

      public void merge(PropertySet other, boolean localOnly)
      Description copied from interface: Mergable
      Merges the values from other collection into this one. Replaces any currently existing value with those from the other set.
      Specified by:
      merge in interface Mergable<PropertySet>
      Specified by:
      merge in interface MutablePropertyValueSource
    • getProfileName

      public String getProfileName()
      Description copied from interface: User
      The name of the user management profile this user was retrieved from.
      Specified by:
      getProfileName in interface User
    • setProfileName

      public void setProfileName(@Nullable String newProfileName)
      Description copied from interface: User
      Scripting functions allow adding and editing of users, and profile names may need to change.
      Specified by:
      setProfileName in interface User
    • getId

      public Serializable getId()
      Description copied from interface: User
      An opaque identifier that can be used to identify this user. Only valid (unique) within the context of the originating user profile
      Specified by:
      getId in interface User
    • getRoles

      public Collection<String> getRoles()
      Description copied from interface: User
      Returns all of the roles this user is a has. Not null.
      Specified by:
      getRoles in interface User
    • addRole

      public void addRole(String role)
      Convenience method for scripting to add a new role easily. Only works if user type supports roles.
      Parameters:
      role - A new role to add. If empty or null, no effect.
    • addRoles

      public void addRoles(Collection<String> roles)
    • removeRole

      public void removeRole(String role)
    • setRoles

      public void setRoles(Collection<String> roles)
    • getContactInfo

      public List<ContactInfo> getContactInfo()
      Description copied from interface: User
      Returns all of the contact information for the user
      Specified by:
      getContactInfo in interface User
    • addContactInfo

      public void addContactInfo(String contactType, String value)
      Convenience method for scripting to add a new contactInfo easily. Does not check for duplicates.
      Parameters:
      contactType - The contact type. This string should match the "contactType" field of a known ContactType
      value - The actual contact information. For example, phone number or email address
    • addContactInfo

      public void addContactInfo(org.python.core.PyDictionary contactDictionary)
    • setContactInfo

      public void setContactInfo(List<ContactInfo> contactInfo)
    • removeContactInfo

      public void removeContactInfo(String contactType, String value)
    • getScheduleAdjustments

      public List<ScheduleAdjustment> getScheduleAdjustments()
      Description copied from interface: User
      Returns all of this user's upcoming schedule adjustments
      Specified by:
      getScheduleAdjustments in interface User
    • addScheduleAdjustment

      public void addScheduleAdjustment(@Nonnull Date start, @Nonnull Date end, boolean available, @Nullable String note)
      Convenience method for scripting to add a new schedule adjustment easily. Does not check for duplicates.
      Parameters:
      start - Date to start the schedule adjustment. Not null.
      end - Date to end start the schedule adjustment. Not null.
      available - True if the employee is available during this period
      note - May be null or empty.
    • addScheduleAdjustments

      public void addScheduleAdjustments(List<ScheduleAdjustment> scheduleAdjustments)
    • removeScheduleAdjustment

      public void removeScheduleAdjustment(@Nonnull Date start, @Nonnull Date end, boolean available, @Nullable String note)
    • setScheduleAdjustments

      public void setScheduleAdjustments(List<ScheduleAdjustment> scheduleAdjustments)
    • getPath

      public QualifiedPath getPath()
      Description copied from interface: User
      Generate an path that unambiguously references this user
      Specified by:
      getPath in interface User