Difference between revisions of "API:EPrints/DataObj/User"

From EPrints Documentation
Jump to: navigation, search
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
<!-- Pod2Wiki=_preamble_  
 
<!-- Pod2Wiki=_preamble_  
This page has been automatically generated from the EPrints 3.2 source. Any wiki changes made between the 'Pod2Wiki=*' and 'Edit below this comment' comments will be lost.
+
This page has been automatically generated from the EPrints 3.4 source. Any wiki changes made between the 'Pod2Wiki=*' and 'Edit below this comment' comments will be lost.
  -->
+
  -->{{API}}{{Pod2Wiki}}{{API:Source|file=EPrints/DataObj/User.pm|package_name=EPrints::DataObj::User}}[[Category:API|USER]][[Category:API:EPrints/DataObj|USER]]<div><!-- Edit below this comment -->
__NOTOC__
 
{{API}}{{Pod2Wiki}}{{API:Source|file=EPrints/DataObj/User.pm|package_name=EPrints::DataObj::User}}[[Category:API|User]]<div><!-- Edit below this comment -->
 
  
  
<!-- Pod2Wiki=head_name --></div>
+
<!-- Pod2Wiki=_private_ --><!-- Pod2Wiki=head_name -->
 
==NAME==
 
==NAME==
 
'''EPrints::DataObj::User''' - Class representing a single user.
 
'''EPrints::DataObj::User''' - Class representing a single user.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=head_description --></div>
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=head_description -->
 
==DESCRIPTION==
 
==DESCRIPTION==
 
This class represents a single eprint user record and the metadata  associated with it.  
 
This class represents a single eprint user record and the metadata  associated with it.  
  
EPrints::DataObj::User is a subclass of EPrints::DataObj with the following metadata fields (plus those defined in ArchiveMetadataFieldsConfig:
+
This class is a subclass of [[API:EPrints/DataObj|EPrints::DataObj]] with the following metadata fields, along with fields in <tt>cfg.d/user_fields.pl</tt>.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=head_system_metadata --></div>
+
<!-- Pod2Wiki= -->
==SYSTEM METADATA==
+
</div>
 +
<!-- Pod2Wiki=head_core_metadata_fields -->
 +
==CORE METADATA FIELDS==
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_userid --></div>
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_userid -->
 
===userid (int)===
 
===userid (int)===
  
The unique ID number of this user record. Unique within the current repository.
+
The unique ID number of this user record. Unique within the current repository.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_rev_number --></div>
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_rev_number -->
 
===rev_number (int)===
 
===rev_number (int)===
  
The revision number of this record. Each time it is changed the revision number is increased. This is not currently used for anything but it may be used for logging later.
+
The revision number of this record. Each time it is changed the revision number is increased. This is not currently used for anything but it may be used for logging later.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_username --></div>
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_username -->
 
===username (text)===
 
===username (text)===
  
The username of this user. Used for logging into the system. Unique within this repository.
+
The username of this user. Used for logging into the system. Unique within this repository.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_password --></div>
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_password -->
 
===password (secret)===
 
===password (secret)===
  
The password of this user encoded with crypt. This may be ignored if the repository is using an alternate authentication system, eg. LDAP.
+
The crypted password for this user as generated by  [[API:EPrints/Utils#crypt|EPrints::Utils/crypt]]. This may be ignored if for example LDAP  authentication is being used.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_usertype --></div>
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_usertype -->
 
===usertype (namedset)===
 
===usertype (namedset)===
  
The type of this user. The options are configured in metadata-phrases.xml.
+
The type of this user. The options are configured in <tt>metadata-phrases.xml</tt>.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_newemail --></div>
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_newemail -->
 
===newemail (email)===
 
===newemail (email)===
  
Line 89: Line 103:
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_newpassword --></div>
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_newpassword -->
 
===newpassword (secret)===
 
===newpassword (secret)===
  
Line 99: Line 115:
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_pin --></div>
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_pin -->
 
===pin (text)===
 
===pin (text)===
  
A code required to confirm a new username or password. This code is emailed to the user to confirm they are who they say they are.
+
A code required to confirm a new username or password. This code is emailed to the user to confirm they are who they say they are.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_pinsettime --></div>
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_pinsettime -->
 
===pinsettime (int)===
 
===pinsettime (int)===
  
Line 119: Line 139:
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_joined --></div>
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_loginattempts -->
 +
===loginattempts (int)===
 +
 
 +
Number of login attempts since last successful login.
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_unlocktime -->
 +
===unlocktime (int)===
 +
 
 +
Time at which user account will be unlocked after too many failed  login attempts.
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_joined -->
 
===joined (time)===
 
===joined (time)===
  
The date and time that the user account was created. Before EPrints 2.4 this was a date field so users created before the upgrade will appear to have been created at midnight.
+
The date and time that the user account was created. Before EPrints 2.4 this was a date field so users created before the upgrade will appear to have been created at midnight.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_email --></div>
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_email -->
 
===email (email)===
 
===email (email)===
  
Line 139: Line 187:
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_lang --></div>
+
<!-- Pod2Wiki= -->
===lang (namedset) ===
+
</div>
 +
<!-- Pod2Wiki=item_lang -->
 +
===lang (arclanguage) ===
  
The ID of the prefered language of this user. Only really used in multilingual repositories.
+
The ID of the prefered language of this user. Only really used in multilingual repositories.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_editperms --></div>
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_editperms -->
 
===editperms (search, multiple)===
 
===editperms (search, multiple)===
  
This field is used to filter what eprints a staff member can approve and modify. If it's unset then they can modify any (given the correct privs. but if it is set then an eprint must match at least one of the searches to be within their scope.
+
This field is used to filter what eprints a staff member can approve and modify. If it's unset then they can modify any (given the correct privs. but if it is set then an eprint must match at least one of the searches to be within their scope.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_frequency --></div>
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_frequency -->
 
===frequency (set)===
 
===frequency (set)===
  
Only relevant to staff accounts. Is the frequency they want to be mailed about eprints matching their scope that are in editorial review. never, daily, weekly or monthly.
+
Only relevant to staff accounts. Is the frequency they want to be mailed about eprints matching their scope that are in editorial review. never, daily, weekly or monthly.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_mailempty --></div>
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_mailempty -->
 
===mailempty (boolean)===
 
===mailempty (boolean)===
  
Only relevant to staff accounts. If set to true then emails are sent even if there are no items matching the scope.
+
Only relevant to staff accounts. If set to true then emails are sent even if there are no items matching the scope.
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_latitude -->
 +
===latitude (float)===
 +
 
 +
The latitude of the location where the user is based.
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_longitude -->
 +
===longitude (float)===
 +
 
 +
The longitude of the location where the user is based.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_preference --></div>
+
<!-- Pod2Wiki= -->
===preference (compound)===
+
</div>
 +
<!-- Pod2Wiki=item_preference -->
 +
===preference (storable)===
  
User preferences which need to be persistent (simple key-value pairs).
+
User preferences which need to be persistent. Stored as a  serialization of simple key-value pairs.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=head_methods --></div>
+
<!-- Pod2Wiki= -->
==METHODS==
+
</div>
 +
<!-- Pod2Wiki=item_captcha -->
 +
===captcha (recaptcha)===
 +
 
 +
A ReCAPTCHA field to use to protect user password resets and  similar forms from being spammed.
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=head_references_and_related_objects -->
 +
==REFERENCES AND RELATED OBJECTS==
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_saved_searches -->
 +
===saved_searches (subobject, multiple)===
 +
 
 +
Saved searches created by this user.
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_item_fields -->
 +
===item_fields (fields, multiple)===
 +
 
 +
Stores bespoke metafields created by this user and stored in the database.
 +
 
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_get_system_field_info --></div>
+
<!-- Pod2Wiki= -->
===$field_info = EPrints::DataObj::User-&gt;get_system_field_info===
+
</div>
 +
<!-- Pod2Wiki=head_instance_variables -->
 +
==INSTANCE VARIABLES==
 +
See [[API:EPrints/DataObj#INSTANCE_VARIABLES|EPrints::DataObj]].
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
  
Return an array describing the system metadata of the this  dataset.
 
  
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=head_methods -->
 +
==METHODS==
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_new --></div>
+
<!-- Pod2Wiki= -->
===$user = EPrints::DataObj::User-&gt;new( $session, $userid )===
+
</div>
 +
<!-- Pod2Wiki=head_constructor_methods -->
 +
===Constructor Methods===
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
  
 +
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_new -->
 +
====new====
 +
 +
$user = EPrints::DataObj::User-&gt;new( $session, $userid )
 
Load the user with the ID of $userid from the database and return it as an EPrints::DataObj::User object.
 
Load the user with the ID of $userid from the database and return it as an EPrints::DataObj::User object.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_new_from_data --></div>
+
<!-- Pod2Wiki= -->
===$user = EPrints::DataObj::User-&gt;new_from_data( $session, $data )===
+
</div>
 +
<!-- Pod2Wiki=item_new_from_data -->
 +
====new_from_data====
  
 +
$user = EPrints::DataObj::User-&gt;new_from_data( $session, $data )
 
Construct a new EPrints::DataObj::User object based on the $data hash  reference of metadata.
 
Construct a new EPrints::DataObj::User object based on the $data hash  reference of metadata.
  
Line 228: Line 373:
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_get_dataset_id --></div>
+
<!-- Pod2Wiki= -->
===$dataset = EPrints::DataObj::User-&gt;get_dataset_id===
+
</div>
 
+
<!-- Pod2Wiki=item_create -->
Returns the id of the [[API:EPrints/DataSet|EPrints::DataSet]] object to which this record belongs.
+
====create====
  
 +
$user = EPrints::DataObj::User::create( $session, $user_type )
 +
Create a new user in the database with the specified user type.
 +
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_get_defaults --></div>
+
<!-- Pod2Wiki= -->
===$defaults = EPrints::DataObj::User-&gt;get_defaults( $session, $data )===
+
</div>
 +
<!-- Pod2Wiki=item_create_from_data -->
 +
====create_from_data====
 +
 
 +
$dataobj = EPrints::DataObj-&gt;create_from_data( $session, $data, $dataset )  
 +
Create a new object of this type in the database.
 +
 
 +
$dataset is the dataset it will belong to.
 +
 +
$data is the data structured as with new_from_data.
 +
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
  
Return default values for this object based on the starting data.
 
  
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=head_class_methods -->
 +
===Class Methods===
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_user_with_email --></div>
+
<!-- Pod2Wiki= -->
===$user = EPrints::DataObj::User::user_with_email( $session, $email )===
+
</div>
 +
<!-- Pod2Wiki=item_get_system_field_info -->
 +
====get_system_field_info====
  
Return the EPrints::user with the specified $email, or undef if they are not found.
+
$fields = EPrints::DataObj::User-&gt;get_system_field_info
 +
Returns an array describing the system metadata of the the user dataset.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_user_with_username --></div>
+
<!-- Pod2Wiki= -->
===$user = EPrints::DataObj::User::user_with_username( $session, $username )===
+
</div>
 +
<!-- Pod2Wiki=item_get_dataset_id -->
 +
====get_dataset_id====
  
Return the EPrints::user with the specified $username, or undef if they are not found.
+
$dataset = EPrints::DataObj::User-&gt;get_dataset_id
 +
Returns the ID of the [[API:EPrints/DataSet|EPrints::DataSet]] object to which this record belongs.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_validate --></div>
+
<!-- Pod2Wiki= -->
===$problems = $thing-&gt;validate===
+
</div>
 +
<!-- Pod2Wiki=head_object_methods -->
 +
===Object Methods===
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 
  
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_validate -->
 +
====validate====
 +
 +
$problems = $user-&gt;validate
 
Validate the user - find out if all the required fields are filled out, and that what's been filled in is OK. Returns a reference to an array of problem descriptions.
 
Validate the user - find out if all the required fields are filled out, and that what's been filled in is OK. Returns a reference to an array of problem descriptions.
  
If there are no probelms then the array is empty.
+
If there are no problems then the array is empty.
  
 
The problems are XHTML DOM objects describing the problem.
 
The problems are XHTML DOM objects describing the problem.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_commit --></div>
+
<!-- Pod2Wiki= -->
===$user-&gt;commit( [$force] )===
+
</div>
 +
<!-- Pod2Wiki=item_commit -->
 +
====commit====
 +
 
 +
$success = $user-&gt;commit( [ $force ] )
 +
Writes this user data object to the database.
 +
 
 +
If <tt>$force</tt> is set and <tt>true</tt> then dave to the database even if no  fields have changed.  Otherwise, only save if at least one field has changed.
 +
 
 +
Returns a boolean depending on whether the user data object was  successfully committed.
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
  
Write this object to the database.
 
  
If $force isn't true then it only actually modifies the database if one or more fields have been changed.
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_close_non_current_login_tickets -->
 +
====close_non_current_login_tickets====
 +
 
 +
$user-&gt;close_non_current_login_tickets
 +
Close all login tickets for this user except the one they are  currently logged in on.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_remove --></div>
+
<!-- Pod2Wiki= -->
===$success = $user-&gt;remove===
+
</div>
 +
<!-- Pod2Wiki=item_remove -->
 +
====remove====
  
 +
$success = $user-&gt;remove
 
Remove this user from the database. Also, remove their saved searches, but do not remove their eprints.
 
Remove this user from the database. Also, remove their saved searches, but do not remove their eprints.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_owned_eprints_list --></div>
+
<!-- Pod2Wiki= -->
===$list = $user-&gt;owned_eprints_list( %opts )===
+
</div>
 +
<!-- Pod2Wiki=item_is_staff -->
 +
====is_staff====
 +
 
 +
$bool = $user-&gt;is_staff
 +
Returns true if the user [[API:EPrints/DataObj/User#has_role|has_role]] is <tt>editor</tt> or <tt>admin</tt>.
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 
  
Returns a [[API:EPrints/List|EPrints::List]] of all the [[API:EPrints/DataObj/EPrint|EPrints::DataObj::EPrint]]s owned by this user.
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_language -->
 +
====language====
  
%opts is passed to a [[API:EPrints/Search|EPrints::Search]] which is used to filter the results.  
+
$lang = $user-&gt;language
 +
Get the preferred language of this user.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_editable_eprints_list --></div>
+
<!-- Pod2Wiki= -->
===$list = $user-&gt;editable_eprints_list( %opts )===
+
</div>
 +
<!-- Pod2Wiki=item_owned_eprints_list -->
 +
====owned_eprints_list====
  
Returns a [[API:EPrints/List|EPrints::List]] of [[API:EPrints/DataObj/EPrint|EPrints::DataObj::EPrint]]s that match this user's editorial search expressions. If the user has no editorial scope a list of all buffered eprints is returned.
+
$list = $user-&gt;owned_eprints_list( %opts )
 +
Returns a [[API:EPrints/List|EPrints::List]] of all the [[API:EPrints/DataObj/EPrint|EPrints::DataObj::EPrint]]s owned by this user.
  
%opts is passed to a [[API:EPrints/Search|EPrints::Search]] which is used to filter the results.  
+
<tt>%opts</tt> is passed to a [[API:EPrints/Search|EPrints::Search]], which is used to filter the results.  
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_get_eprints --></div>
+
<!-- Pod2Wiki= -->
===$list = $user-&gt;get_eprints( $dataset )===
+
</div>
 +
<!-- Pod2Wiki=item_editable_eprints_list -->
 +
====editable_eprints_list====
 +
 
 +
$list = $user-&gt;editable_eprints_list( %opts )
 +
Returns a [[API:EPrints/List|EPrints::List]] of [[API:EPrints/DataObj/EPrint|EPrints::DataObj::EPrint]]s that match  this user's editorial search expressions. If the user has no editorial  scope a list of all eprints that match the given <tt>%opts</tt> is returned.
 +
 
 +
<tt>%opts</tt> is passed to a [[API:EPrints/Search|EPrints::Search]] which is used to filter the  results.
 +
 
 +
$list = $user-&gt;editable_eprints_list(
 +
    dataset =&gt; $repo-&gt;dataset( "buffer" ),
 +
);
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
  
DEPRECATED
 
  
Return EPrints in the given EPrints::DataSet which have this user as their creator.
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_has_owner -->
 +
====has_owner====
  
Since 2.4 this returns an EPrints::List object, not an array of eprints.
+
$boolean = $user-&gt;has_owner( $possible_owner )
 +
Returns <tt>true</tt> if <tt>$possible_owner</tt> is the same as this user.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_get_editable_eprints --></div>
+
<!-- Pod2Wiki= -->
===$list = $user-&gt;get_editable_eprints===
+
</div>
 +
<!-- Pod2Wiki=item_mail -->
 +
====mail====
 +
 
 +
$ok = $user-&gt;mail( $subjectid, $message, [$replyto, $email, $cc_list] )
 +
Send an email to this user.
 +
 
 +
<tt>$subjectid</tt> is the ID of a phrase to use as the subject of this  email.
  
DEPRECATED
+
<tt>$message</tt> is an XML DOM object describing the message in simple  XHTML.
  
Return eprints currently in the editorial review buffer. If this user has editperms set then only return those records which match.
+
<tt>$replyto</tt> is the reply to address for this email, if different to  the repository default.
  
Since 2.4 this returns an EPrints::List object, not an array of eprints.
+
<tt>$email</tt> is the email address to send this email to if different from this users configured email address.
 +
 
 +
<tt>$cc_list</tt> is an optional CC list (array reference)
 +
 
 +
Returns <tt>true</tt> if the email was sent OK.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_get_owned_eprints --></div>
+
<!-- Pod2Wiki= -->
===$list = $user-&gt;get_owned_eprints( $dataset );===
+
</div>
 +
<!-- Pod2Wiki=item_render -->
 +
====render====
  
DEPRECATED
+
( $page, $title ) = $user-&gt;render
 +
Returns XHTML DOM renderings of the page and the title for this user's page. This uses the configurable <tt>$user_render</tt> method that can  typically be found in <tt>cfg.d/user_render.pl</tt>.
  
Return a list of the eprints which this user owns. This is by default the same as $user-&gt;get_eprints( $dataset) but may be over-ridden by get_users_owned_eprints.
+
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_render_full -->
 +
====render_full====
 +
 
 +
( $page, $title ) = $user-&gt;render_full
 +
The same as [[API:EPrints/DataObj/User#render|render]], but returns page and title renderings for all  fields, not just those intended for public viewing. This is the admin  view of the user.
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_get_url -->
 +
====get_url====
  
Since 2.4 this returns an EPrints::List object, not an array of eprints.
+
$url = $user-&gt;get_url
 +
Returns the URL which will display information about this user.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_has_owner --></div>
+
<!-- Pod2Wiki= -->
===$boolean = $user-&gt;has_owner( $possible_owner )===
+
</div>
 +
<!-- Pod2Wiki=item_get_control_url -->
 +
====get_control_url====
  
True if the users are the same record.
+
$url = $dataobj-&gt;get_control_url
 +
Returns the URL for the control page for this user.  
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_mail --></div>
+
<!-- Pod2Wiki= -->
===$ok = $user-&gt;mail( $subjectid, $message, [$replyto], [$email] )===
+
</div>
 +
<!-- Pod2Wiki=item_get_type -->
 +
====get_type====
  
Send an email to this user.  
+
$type = $user-&gt;get_type
 +
Return the type of this user.
  
$subjectid is the ID of a phrase to use as the subject of this email.
+
Alias for:
  
$message is an XML DOM object describing the message in simple XHTML.
+
$user-&gt;get_value( "usertype" )
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
  
$replyto is the reply to address for this email, if different to the repository default.
 
  
$email is the email address to send this email to if different from this users configured email address.
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_get_saved_searches -->
 +
====get_saved_searches====
  
Return true if the email was sent OK.
+
@saved_searches = $eprint-&gt;get_saved_searches
 +
Returns an array of all {{API:PodLink|file=EPrint/DataObj/SavedSearch|package_name=EPrint::DataObj::SavedSearch|section=|text=EPrint::DataObj::SavedSearch}} objects  associated with this user.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_render --></div>
+
<!-- Pod2Wiki= -->
===( $page, $title ) = $user-&gt;render===
+
</div>
 +
<!-- Pod2Wiki=item_preference -->
 +
====preference====
  
Render this user into HTML using the "user_render" method in ArchiveRenderConfig.pm. Returns both the rendered information and the title as XHTML DOM.
+
$value = $user-&gt;preference( $key )
 +
Returns the preference value for <tt>$key</tt>. Otherwise, returns <tt>undef</tt>.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_render_full --></div>
+
<!-- Pod2Wiki= -->
===( $page, $title ) = $user-&gt;render_full===
+
</div>
 +
<!-- Pod2Wiki=item_set_preference -->
 +
====set_preference====
  
The same as $user-&gt;render, but renders all fields, not just those  intended for public viewing. This is the admin view of the user.
+
$user-&gt;set_preference( $key, $value )
 +
Set a preference <tt>$key</tt> to <tt>$value</tt> for this user.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_get_url --></div>
+
<!-- Pod2Wiki= -->
===$url = $user-&gt;get_url===
+
</div>
 +
<!-- Pod2Wiki=item_send_out_editor_alert -->
 +
====send_out_editor_alert====
  
Return the URL which will display information about this user.
+
$user-&gt;send_out_editor_alert
 +
Called on users who are editors, when it's time to send their update on what items are in the editorial review buffer. Typically called  by [[API:EPrints/DataObj/User#process_editor_alerts|process_editor_alerts]].
  
If $staff is true then return the URL for an administrator to view and modify this record.
+
Only sends the email if needed.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_get_type --></div>
+
<!-- Pod2Wiki= -->
===$type = $user-&gt;get_type===
+
</div>
 +
<!-- Pod2Wiki=item_allow -->
 +
====allow====
  
Return the type of this user. Equivalent of $user-&gt;get_value( "usertype" );
+
  $result = $user-&gt;allow( $priv, [ $item ] )
 +
Returns <tt>true</tt> if user can perform an action specified by <tt>$priv</tt>.
 +
 
 +
If set, further checks whether the user is permitted to perform the action of <tt>$priv</tt> on a particular <tt>$item</tt> data object.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_get_saved_searches --></div>
+
<!-- Pod2Wiki= -->
===@saved_searches = $eprint-&gt;get_saved_searches===
+
</div>
 +
<!-- Pod2Wiki=item_has_privilege -->
 +
====has_privilege====
  
Return an array of all EPrint::DataObj::SavedSearch objects associated with this user.
+
$boolean = $user-&gt;has_privilege( $priv )
 +
Returns <tt>true</tt> if <tt>$priv</tt> is in the user's privileges list.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_preference --></div>
+
<!-- Pod2Wiki= -->
===$value = $user-&gt;preference( $key )===
+
</div>
 +
<!-- Pod2Wiki=item_get_privs -->
 +
====get_privs====
  
Retrieve the preference $key.
+
$privs = $user-&gt;get_privs
 +
Returns the privileges this user has. Currently just based on roles, but could do more later.
 +
 
 +
Returns a reference to a hash. Caching the result to save time in future.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_set_preference --></div>
+
<!-- Pod2Wiki= -->
===$user-&gt;set_preference( $key, $value )===
+
</div>
 +
<!-- Pod2Wiki=item_get_roles -->
 +
====get_roles====
  
Set a preference $key for the user to $value.
+
@roles = $user-&gt;get_roles;
 +
Returns the roles this user has. Each role represents a whole bunch of privileges.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_send_out_editor_alert --></div>
+
<!-- Pod2Wiki= -->
===$user-&gt;send_out_editor_alert===
+
</div>
 +
<!-- Pod2Wiki=item_has_role -->
 +
====has_role====
  
Called on users who are editors, when it's time to send their update on what items are in the editorial review buffer.
+
$user-&gt;has_role( $roleid )
 +
Returns boolean dependent on whether this user has the role <tt>$roleid</tt>.
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
  
Sends the email if needed.
 
  
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=head_utility_methods -->
 +
===Utility Methods===
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_process_editor_alerts --></div>
+
<!-- Pod2Wiki= -->
===EPrints::DataObj::User::process_editor_alerts( $session, $frequency );===
+
</div>
 +
<!-- Pod2Wiki=item_user_with_email -->
 +
====user_with_email====
  
Static method.
+
$user = EPrints::DataObj::User::user_with_email( $repo, $email )
 +
Returns the use with the specified <tt>$email</tt>, or <tt>undef</tt> if they cannot benot found.
  
Called to send out all editor alerts of a given frequency (daily, weekly, monthly) for the current repository.
+
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=item_user_with_username -->
 +
====user_with_username====
 +
 
 +
$user = EPrints::DataObj::User::user_with_username( $session, $username )
 +
Returns the user with the specified <tt>$username</tt>, or <tt>undef</tt> if they cannot be not found.
  
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
<!-- Pod2Wiki=item_allow --></div>
+
<!-- Pod2Wiki= -->
===$result = $user-&gt;allow( $priv, [$item] )===
+
</div>
 +
<!-- Pod2Wiki=item_process_editor_alerts -->
 +
====process_editor_alerts====
  
Returns true if $user can perform this action/view this screen.
+
EPrints::DataObj::User::process_editor_alerts( $session, $frequency );
 +
Called to send out all editor alerts of a given frequency (daily, weekly, monthly) for the current repository by the <tt>bin/send_alerts</tt> script that is configured as daily, weekly and monthly cron jobs.
 +
 
 +
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
  
A true result is 1..15 where the value indicates what about the user allowed the priv to be performed. This is used for filtering owner/ editor actions in eprint control screens.
 
  
1 = anybody (not currently used) 2 = only if logged in  4 = only if owner of item 8 = only if editor of item
+
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=head_see_also -->
 +
==SEE ALSO==
 +
[[API:EPrints/DataObj|EPrints::DataObj]] and [[API:EPrints/DataSet|EPrints::DataSet]].
  
For non item related privs the result will normally be 2.
+
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 +
<span style='display:none'>User Comments</span>
 +
<!-- Edit below this comment -->
  
Nb. That create eprint is NOT a priv related to an eprint, as you  don't own it at that stage.
 
  
 +
<!-- Pod2Wiki= -->
 +
</div>
 +
<!-- Pod2Wiki=head_copyright -->
 +
==COPYRIGHT==
 +
{{API:Copyright}}
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
 
<div style='background-color: #e8e8f; margin: 0.5em 0em 1em 0em; border: solid 1px #cce;  padding: 0em 1em 0em 1em; font-size: 80%; '>
<h4><span style='display:none'>User Comments</span></h4>
+
<span style='display:none'>User Comments</span>
 
<!-- Edit below this comment -->
 
<!-- Edit below this comment -->
  
  
 +
<!-- Pod2Wiki= -->
 +
</div>
 
<!-- Pod2Wiki=_postamble_ --><!-- Edit below this comment -->
 
<!-- Pod2Wiki=_postamble_ --><!-- Edit below this comment -->

Latest revision as of 18:50, 10 January 2022

EPrints 3 Reference: Directory Structure - Metadata Fields - Repository Configuration - XML Config Files - XML Export Format - EPrints data structure - Core API - Data Objects


API: Core API

Latest Source Code (3.4, 3.3) | Revision Log | Before editing this page please read Pod2Wiki


NAME

EPrints::DataObj::User - Class representing a single user.

User Comments


DESCRIPTION

This class represents a single eprint user record and the metadata associated with it.

This class is a subclass of EPrints::DataObj with the following metadata fields, along with fields in cfg.d/user_fields.pl.

User Comments


CORE METADATA FIELDS

User Comments


userid (int)

The unique ID number of this user record. Unique within the current repository.

User Comments


rev_number (int)

The revision number of this record. Each time it is changed the revision number is increased. This is not currently used for anything but it may be used for logging later.

User Comments


username (text)

The username of this user. Used for logging into the system. Unique within this repository.

User Comments


password (secret)

The crypted password for this user as generated by EPrints::Utils/crypt. This may be ignored if for example LDAP authentication is being used.

User Comments


usertype (namedset)

The type of this user. The options are configured in metadata-phrases.xml.

User Comments


newemail (email)

Used to store a new but as yet unconfirmed email address.

User Comments


newpassword (secret)

Used to store a new but as yet unconfirmed password.

User Comments


pin (text)

A code required to confirm a new username or password. This code is emailed to the user to confirm they are who they say they are.

User Comments


pinsettime (int)

When the pin code was set, so we can make it time out.

User Comments


loginattempts (int)

Number of login attempts since last successful login.

User Comments


unlocktime (int)

Time at which user account will be unlocked after too many failed login attempts.

User Comments


joined (time)

The date and time that the user account was created. Before EPrints 2.4 this was a date field so users created before the upgrade will appear to have been created at midnight.

User Comments


email (email)

The email address of this user. Unique within the repository.

User Comments


lang (arclanguage)

The ID of the prefered language of this user. Only really used in multilingual repositories.

User Comments


editperms (search, multiple)

This field is used to filter what eprints a staff member can approve and modify. If it's unset then they can modify any (given the correct privs. but if it is set then an eprint must match at least one of the searches to be within their scope.

User Comments


frequency (set)

Only relevant to staff accounts. Is the frequency they want to be mailed about eprints matching their scope that are in editorial review. never, daily, weekly or monthly.

User Comments


mailempty (boolean)

Only relevant to staff accounts. If set to true then emails are sent even if there are no items matching the scope.

User Comments


latitude (float)

The latitude of the location where the user is based.

User Comments


longitude (float)

The longitude of the location where the user is based.

User Comments


preference (storable)

User preferences which need to be persistent. Stored as a serialization of simple key-value pairs.

User Comments


captcha (recaptcha)

A ReCAPTCHA field to use to protect user password resets and similar forms from being spammed.

User Comments


REFERENCES AND RELATED OBJECTS

User Comments


saved_searches (subobject, multiple)

Saved searches created by this user.

User Comments


item_fields (fields, multiple)

Stores bespoke metafields created by this user and stored in the database.

User Comments


INSTANCE VARIABLES

See EPrints::DataObj.

User Comments


METHODS

User Comments


Constructor Methods

User Comments


new

$user = EPrints::DataObj::User->new( $session, $userid )

Load the user with the ID of $userid from the database and return it as an EPrints::DataObj::User object.

User Comments


new_from_data

$user = EPrints::DataObj::User->new_from_data( $session, $data )

Construct a new EPrints::DataObj::User object based on the $data hash reference of metadata.

Used to create an object from the data retrieved from the database.

User Comments


create

$user = EPrints::DataObj::User::create( $session, $user_type ) 

Create a new user in the database with the specified user type.

User Comments


create_from_data

$dataobj = EPrints::DataObj->create_from_data( $session, $data, $dataset ) 

Create a new object of this type in the database.

$dataset is the dataset it will belong to.

$data is the data structured as with new_from_data.

User Comments


Class Methods

User Comments


get_system_field_info

$fields = EPrints::DataObj::User->get_system_field_info

Returns an array describing the system metadata of the the user dataset.

User Comments


get_dataset_id

$dataset = EPrints::DataObj::User->get_dataset_id

Returns the ID of the EPrints::DataSet object to which this record belongs.

User Comments


Object Methods

User Comments


validate

$problems = $user->validate

Validate the user - find out if all the required fields are filled out, and that what's been filled in is OK. Returns a reference to an array of problem descriptions.

If there are no problems then the array is empty.

The problems are XHTML DOM objects describing the problem.

User Comments


commit

$success = $user->commit( [ $force ] )

Writes this user data object to the database.

If $force is set and true then dave to the database even if no fields have changed. Otherwise, only save if at least one field has changed.

Returns a boolean depending on whether the user data object was successfully committed.

User Comments


close_non_current_login_tickets

$user->close_non_current_login_tickets

Close all login tickets for this user except the one they are currently logged in on.

User Comments


remove

$success = $user->remove

Remove this user from the database. Also, remove their saved searches, but do not remove their eprints.

User Comments


is_staff

$bool = $user->is_staff

Returns true if the user has_role is editor or admin.

User Comments


language

$lang = $user->language

Get the preferred language of this user.

User Comments


owned_eprints_list

$list = $user->owned_eprints_list( %opts )

Returns a EPrints::List of all the EPrints::DataObj::EPrints owned by this user.

%opts is passed to a EPrints::Search, which is used to filter the results.

User Comments


editable_eprints_list

$list = $user->editable_eprints_list( %opts )

Returns a EPrints::List of EPrints::DataObj::EPrints that match this user's editorial search expressions. If the user has no editorial scope a list of all eprints that match the given %opts is returned.

%opts is passed to a EPrints::Search which is used to filter the results.

$list = $user->editable_eprints_list(
    dataset => $repo->dataset( "buffer" ),
);
 

User Comments


has_owner

$boolean = $user->has_owner( $possible_owner )

Returns true if $possible_owner is the same as this user.

User Comments


mail

$ok = $user->mail( $subjectid, $message, [$replyto, $email, $cc_list] )

Send an email to this user.

$subjectid is the ID of a phrase to use as the subject of this email.

$message is an XML DOM object describing the message in simple XHTML.

$replyto is the reply to address for this email, if different to the repository default.

$email is the email address to send this email to if different from this users configured email address.

$cc_list is an optional CC list (array reference)

Returns true if the email was sent OK.

User Comments


render

( $page, $title ) = $user->render

Returns XHTML DOM renderings of the page and the title for this user's page. This uses the configurable $user_render method that can typically be found in cfg.d/user_render.pl.

User Comments


render_full

( $page, $title ) = $user->render_full

The same as render, but returns page and title renderings for all fields, not just those intended for public viewing. This is the admin view of the user.

User Comments


get_url

$url = $user->get_url

Returns the URL which will display information about this user.

User Comments


get_control_url

$url = $dataobj->get_control_url

Returns the URL for the control page for this user.

User Comments


get_type

$type = $user->get_type

Return the type of this user.

Alias for:

$user->get_value( "usertype" )
 

User Comments


get_saved_searches

@saved_searches = $eprint->get_saved_searches

Returns an array of all EPrint::DataObj::SavedSearch objects associated with this user.

User Comments


preference

$value = $user->preference( $key )

Returns the preference value for $key. Otherwise, returns undef.

User Comments


set_preference

$user->set_preference( $key, $value )

Set a preference $key to $value for this user.

User Comments


send_out_editor_alert

$user->send_out_editor_alert

Called on users who are editors, when it's time to send their update on what items are in the editorial review buffer. Typically called by process_editor_alerts.

Only sends the email if needed.

User Comments


allow

$result = $user->allow( $priv, [ $item ] )

Returns true if user can perform an action specified by $priv.

If set, further checks whether the user is permitted to perform the action of $priv on a particular $item data object.

User Comments


has_privilege

$boolean = $user->has_privilege( $priv )

Returns true if $priv is in the user's privileges list.

User Comments


get_privs

$privs = $user->get_privs

Returns the privileges this user has. Currently just based on roles, but could do more later.

Returns a reference to a hash. Caching the result to save time in future.

User Comments


get_roles

@roles = $user->get_roles;

Returns the roles this user has. Each role represents a whole bunch of privileges.

User Comments


has_role

$user->has_role( $roleid )

Returns boolean dependent on whether this user has the role $roleid.

User Comments


Utility Methods

User Comments


user_with_email

$user = EPrints::DataObj::User::user_with_email( $repo, $email )

Returns the use with the specified $email, or undef if they cannot benot found.

User Comments


user_with_username

$user = EPrints::DataObj::User::user_with_username( $session, $username )

Returns the user with the specified $username, or undef if they cannot be not found.

User Comments


process_editor_alerts

EPrints::DataObj::User::process_editor_alerts( $session, $frequency );

Called to send out all editor alerts of a given frequency (daily, weekly, monthly) for the current repository by the bin/send_alerts script that is configured as daily, weekly and monthly cron jobs.

User Comments


SEE ALSO

EPrints::DataObj and EPrints::DataSet.

User Comments


COPYRIGHT

© Copyright 2023 University of Southampton.

EPrints 3.4 is supplied by EPrints Services.

http://www.eprints.org/eprints-3.4/

LICENSE

This file is part of EPrints 3.4 http://www.eprints.org/.

EPrints 3.4 and this file are released under the terms of the GNU Lesser General Public License version 3 as published by the Free Software Foundation unless otherwise stated.

EPrints 3.4 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with EPrints 3.4. If not, see http://www.gnu.org/licenses/.

User Comments