# Class PersonObject

The main person/user class for the site

  AlphaDAO
  PersonObject

Package: alpha::model
Copyright: Copyright (c) 2012, John Collins (founder of Alpha Framework). All rights reserved.

    Redistribution and use in source and binary forms, with or
    without modification, are permitted provided that the
    following conditions are met:

    * Redistributions of source code must retain the above
      copyright notice, this list of conditions and the
      following disclaimer.
    * Redistributions in binary form must reproduce the above
      copyright notice, this list of conditions and the
      following disclaimer in the documentation and/or other
      materials provided with the distribution.
    * Neither the name of the Alpha Framework nor the names
      of its contributors may be used to endorse or promote
      products derived from this software without specific
      prior written permission.

    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
    CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
    NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
    OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

License: The BSD License
Author: John Collins <dev@alphaframework.org>
Version: $Id: PersonObject.inc 1548 2012-07-29 17:07:07Z alphadevx $
Since: 1.0
Located at model/PersonObject.inc

Methods summary
`public` | # `__construct( )` Constructor for the class that populates all of the complex types with default values Constructor for the class that populates all of the complex types with default values #### Since 1.0 #### Overrides `AlphaDAO::__construct()`
`protected` | # `after_load_callback( )` Set up the transient attributes for the rights group after it has loaded Set up the transient attributes for the rights group after it has loaded #### Since 1.0
`protected` | # `after_loadByAttribute_callback( )` Set up the transient attributes for the site after it has loaded Set up the transient attributes for the site after it has loaded #### Since 1.0
`protected` | # `after_save_callback( )` Looks up the OID for the Standard rights group, then relates the new person to that group if they are not in it already. If that group does not exist it will be recreated! Looks up the OID for the Standard rights group, then relates the new person to that group if they are not in it already. If that group does not exist it will be recreated! #### Since 1.0
`protected` | # `before_populateFromPost_callback( )` Encrypts any fields called 'password' posted for the PersonObject Encrypts any fields called 'password' posted for the PersonObject #### Since 1.0
`protected` | # `setupRels( )` Sets up the Relation definitions on this BO Sets up the Relation definitions on this BO #### Since 1.0
`public` | # `setDisplayName( string $displayName )` Setter for displayName Setter for displayName #### Parameters $displayName `string` $displayName #### Since 1.0
`public `String`` | # `getDisplayName( )` Getter for displayName Getter for displayName #### Returns ``String`` #### Since 1.0
`public boolean` | # `inGroup( string $groupName )` Checks to see if the person is in the rights group specified Checks to see if the person is in the rights group specified #### Parameters $groupName `string` $groupName #### Returns `boolean` #### Since 1.0
`public` | # `sendMail( string $message, string $subject )` A generic method for mailing a person A generic method for mailing a person #### Parameters $message `string` $message $subject `string` $subject #### Throws ``MailNotSentException`` #### Since 1.0
`public string` | # `generatePassword( )` Generates a random password for the user Generates a random password for the user #### Returns `string` #### Since 1.0
`public integer` | # `getCommentCount( )` Method for getting a count of the amount of article comments posted by the user Method for getting a count of the amount of article comments posted by the user #### Returns `integer` #### Throws ``AlphaException`` #### Since 1.0

Methods inherited from AlphaDAO
`__wakeup(), addProperty(), addToCache(), begin(), cast(), checkBOTableExists(), checkClassDefExists(), checkRecordExists(), checkTableExists(), checkTableNeedsUpdate(), commit(), createForeignIndex(), createUniqueIndex(), delete(), deleteAllByAttribute(), disconnect(), dropTable(), findMissingFields(), get(), getBOClassNames(), getConnection(), getCount(), getCreateTS(), getCreatorId(), getDataLabel(), getDataLabels(), getDefaultAttributes(), getFriendlyClassName(), getHistoryCount(), getID(), getIndexes(), getLastQuery(), getMAX(), getMaintainHistory(), getOID(), getPersistentAttributes(), getPropObject(), getTableName(), getTransientAttributes(), getUniqueAttributes(), getUpdateTS(), getUpdatorId(), getVersion(), getVersionNumber(), hasAttribute(), isInstalled(), isTableOverloaded(), isTagged(), isTransient(), load(), loadAll(), loadAllByAttribute(), loadAllByAttributes(), loadAllByDayUpdated(), loadAllFieldValuesByAttribute(), loadByAttribute(), loadClassDef(), loadFromCache(), makeHistoryTable(), makeTable(), markPersistent(), markTransient(), markUnique(), populateFromPost(), query(), rebuildTable(), reload(), removeFromCache(), rollback(), save(), saveAttribute(), saveHistory(), set(), setDataLabels(), setEnumOptions(), setLastQuery(), setMaintainHistory(), setOID(), validate()`

Constants summary
`string` | `TABLE_NAME` | `'Person'` | # The name of the database table for the class The name of the database table for the class #### Since 1.0

Properties summary
`protected `String`` | $displayName | `` | # The forum display name of the person The forum display name of the person #### Since 1.0
`protected `String`` | $email | `` | # The email address for the person The email address for the person #### Since 1.0
`protected `String`` | $password | `` | # The password for the person The password for the person #### Since 1.0
`protected `Relation`` | $rights | `` | # A Relation containing all of the rights groups that this person belongs to A Relation containing all of the rights groups that this person belongs to #### Since 1.0
`protected array` | $dataLabels | `array("OID"=>"Member ID#", "displayName"=>"Display Name", "email"=>"E-mail Address", "password"=>"Password", "state"=>"Account state", "URL"=>"Your site address", "rights"=>"Rights Group Membership")` | # An array of data display labels for the class properties An array of data display labels for the class properties #### Since 1.0
`protected `Enum`` | $state | `` | # The state of the person (account status) The state of the person (account status) #### Since 1.0
`protected `String`` | $URL | `` | # The website URL of the person The website URL of the person #### Since 1.0
`private static `Logger`` | $logger | `null` | # Trace logger Trace logger #### Since 1.0

Properties inherited from AlphaDAO
`$OID, $created_by, $created_ts, $defaultAttributes, $lastQuery, $transientAttributes, $uniqueAttributes, $updated_by, $updated_ts, $version_num`