ExpressionEngine Docs

Member Model

class ExpressionEngine\Model\Member\Member

Properties

Required

role_id

username

email

password

Optional

member_id Key

group_id (deprecated, use role_id)

screen_name

salt (deprecated)

unique_id

crypt_key

authcode

signature

avatar_filename

avatar_width

avatar_height

photo_filename

photo_width

photo_height

sig_img_filename

sig_img_width

sig_img_height

ignore_list

private_messages

accept_messages

last_view_bulletins

last_bulletin_date

ip_address

join_date

last_visit

last_activity

total_entries

total_comments

total_forum_topics

total_forum_posts

last_entry_date

last_comment_date

last_forum_post_date

last_email_date

in_authorlist

accept_admin_email

accept_user_email

notify_by_default

notify_of_pm

display_signatures

parse_smileys

smart_notifications

language

timezone

time_format

date_format

include_seconds

profile_theme

forum_theme

tracker

template_size

notepad

notepad_size

bookmarklets

quick_links

quick_tabs

show_sidebar

pmember_id (deprecated)

cp_homepage

cp_homepage_channel json

cp_homepage_custom

Relationships

PrimaryRole

Primary Role that the member belongs to.

Roles

Additional Roles the member is assigned to. May or may not include Primary Role.

RoleGroups

Role Groups assigned to member.

Note: To get full list of Roles assigned to member, use getAllRoles() function.

HTMLButtons

HTML Buttons assigned to member.

LastAuthoredTemplates

Templates last edited by member.

AuthoredChannelEntries

Channel Entries created by member.

LastAuthoredSpecialtyTemplates

Specialty Templates last edited by member.

UploadedFiles

Files uploaded by member.

ModifiedFiles

Files modified by member.

VersionedChannelEntries

Channel Entry Versions created by member.

EmailConsoleCaches

Email Console Log records for member.

SearchLogs

Search Log records for member.

CpLogs

CP Log records for member.

ChannelEntryAutosaves

Channel Entries Autosaves by member.

Comments

Comments posted by member.

TemplateRevisions

Template RevisionTracker records that the member is author of.

SiteStatsIfLastMember

Stats for the site where member is last registered user.

CommentSubscriptions

Member’s Subscriptions for new comment notifications

NewsView

Member’s News View for CP Homepage

AuthoredConsentRequests

Consent Request Versions authored by member.

ConsentAuditLogs

Records in Consent Audit Log for member.

Consents

Consent signed by member.

SentMessages

Private Messages sent by member.

SentMessageReceipts

Message Copy records for private messages sent by member.

SentAttachments

Attachments to private messages sent by member.

ReceivedMessages

Private messages received by member.

ReceivedMessageReceipts

Message Copy records for private messages received by member.

MessageFolders

Private Message Folders for member.

ListedMembers

Members Listed (as buddy or blocked) by user.

ListedByMembers

Users that have listed the member.

RememberMe

RememberMe records for member.

Session

Sessions opened by member.

Online

OnlineMember records for member.

Methods

getMemberName()

Gets the member’s name

Parameter Type Description
Returns String The member’s name

getHTMLButtonsForSite($site_id)

Gets the HTML buttons for a given site id for this member. Falls back to the site’s defined HTML buttons

Parameter Type Description
$site_id Int The site ID
Returns Collection A collection of HTMLButton entities

updateAuthorStats()

Updates the author’s total_entries and total_comments stats based on the ChannelEntry and Comment counts.

Parameter Type Description
Returns Void

updateAuthorStats($site_id)

Returns the URL to use for the homepage for this member, otherwise we’ll use the default of ‘homepage’. We prioritize on the Member’s preferences then the groups preferences, falling back to the default.

Parameter Type Description
$site_id Int The site ID, defaults to current site
Returns CP\URL The URL

getAvatarUrl()

Get the full URL to the Avatar

Parameter Type Description
Returns String Avatar URL

getSignatureImageUrl()

Get the full URL to the Signature Image

Parameter Type Description
Returns String Signature Image URL

anonymize()

Anonymize a member record in order to comply with a GDPR Right to Erasure request

Parameter Type Description
Returns Void

isAnonymized()

Checks whether this member already been anonymized

Parameter Type Description
Returns Bool TRUE if the user has been anonymized

getAllRoles()

Get all roles assigned to member, including Primary Role, extra roles and roles assigned via Role Groups

Parameter Type Description
Returns Collection all roles assigned to member

getAssignedModules()

Get all modules that the member is allowed to access

Parameter Type Description
Returns Collection Collection of Module entities

getAssignedChannels()

Get all channels that the member is allowed to use

Parameter Type Description
Returns Collection Collection of Channel entities

getAssignedUploadDestinations()

Get all upload destination that the member is allowed to use

Parameter Type Description
Returns Collection Collection of UploadDestination entities

getAssignedStatuses()

Get all entry statuses that the member is allowed to use

Parameter Type Description
Returns Collection Collection of Status entities

getAssignedTemplateGroups()

Get all template groups that the member is allowed to manipulate

Parameter Type Description
Returns Collection Collection of TemplateGroup entities

getAssignedTemplates()

Get all templates that the member is allowed to access

Parameter Type Description
Returns Collection Collection of Template entities

getPermissions()

Get permissions assigned to member

Parameter Type Description
Returns Array [permission => permission_id]

has($permission)

Checks whether member has certain permission

Parameter Type Description
$permission String Full permission name
Returns Bool TRUE if permission has been granted

isSuperAdmin()

Checks whether member is SuperAdmin

Parameter Type Description
Returns Bool TRUE if if member is SuperAdmin

isBanned()

Checks whether member has been banned

Parameter Type Description
Returns Bool TRUE if if member is banned

isPending()

Checks whether member is pending

Parameter Type Description
Returns Bool TRUE if if member is pending

Events

Saving with this model will trigger the following events: afterUpdate' beforeDelete' afterBulkDelete' beforeInsert' beforeValidate' afterSave

Examples:

Get Member

$username = 'bob';
$member_object = ee('Model')->get('Member')->filter('username', $username)->first();

Get A Member’s Roles

$username = 'bob';
$member_roles_object = ee('Model')->get('Member')->filter('username', $username)->first()->getAllRoles();

Change Member’s Primary Role

$new_role_id = 8;
$member_object->role_id = $new_role_id;

// Validate and Save.
$result = $member_object->validate();

if ($result->isValid())
{
  $member_object->save();
}

Add additional Roles to Member

// Get the member object.
$member_object = ee('Model')->get('Member')->filter('username', $username)->first();

// Get Member's existing role ID.
$current_role_ids = $member_object->Roles->pluck('role_id');

// Your list of new roles to add.
$roles_to_add = array(5,6);

// Merge the two arrays.
$all_roles = array_merge($current_role_ids, $roles_to_add);

// Add the roles to the member.
$member_object->Roles = ee('Model')->get('Role', $all_roles)->all();

// Validate and Save.
$result = $member_object->validate();

if ($result->isValid())
{
  $member_object->save();
}

Set Member Custom Field

$field_id = '26';
$member_object->{'m_field_id_'.$field_id} = 'New Field Value';

// Validate and Save.
$result = $member_object->validate();

if ($result->isValid())
{
  $member_object->save();
}

Create a New Member

$password_array = ee()->auth->hash_password($unencrypted_password);

$member_data = array(

    'role_id'    => 6,
    'username'   => 'bobsmith123', // unique.
    'email'      => 'example@gmail.com`,  // unique.
    'password'   => $password_array['password'],
    'ip_address' => ee()->input->ip_address(),
    'unique_id'  => ee('Encrypt')->generateKey(),
    'crypt_key'  => ee('Encrypt')->generateKey(),
    'join_date'  => ee()->localize->now,
    'language'   => ee()->config->item('deft_lang'),

);

$member = ee('Model')->make('Member');
$member->set($member_data);

// Validate and Save.
$result = $member->validate();

if ($result->isValid())
{
  $member->save();
}