+++ /dev/null
-<?php
-
-namespace Drush\User;
-
-abstract class UserSingleBase {
-
- // A Drupal user entity.
- public $account;
-
- public function __construct($account) {
- $this->account = $account;
- }
-
- /**
- * A flatter and simpler array presentation of a Drupal $user object.
- *
- * @return array
- */
- public function info() {
- return array(
- 'uid' => $this->account->id(),
- 'name' => $this->account->getUsername(),
- 'password' => $this->account->getPassword(),
- 'mail' => $this->account->getEmail(),
- 'user_created' => $this->account->getCreatedTime(),
- 'created' => format_date($this->account->getCreatedTime()),
- 'user_access' => $this->account->getLastAccessedTime(),
- 'access' => format_date($this->account->getLastAccessedTime()),
- 'user_login' => $this->account->getLastLoginTime(),
- 'login' => format_date($this->account->getLastLoginTime()),
- 'user_status' => $this->account->get('status')->value,
- 'status' => $this->account->isActive() ? 'active' : 'blocked',
- 'timezone' => $this->account->getTimeZone(),
- 'roles' => $this->account->getRoles(),
- 'langcode' => $this->account->getPreferredLangcode(),
- 'uuid' => $this->account->uuid->value,
- );
- }
-
- /**
- * Block a user from login.
- */
- public function block() {
- $this->account->block();
- $this->account->save();
- }
-
- /**
- * Unblock a user from login.
- */
- public function unblock() {
- $this->account->get('status')->value = 1;
- $this->account->save();
- }
-
- /**
- * Add a role to the current user.
- *
- * @param $rid
- * A role ID.
- */
- public function addRole($rid) {
- $this->account->addRole($rid);
- $this->account->save();
- }
-
- /**
- * Remove a role from the current user.
- *
- * @param $rid
- * A role ID.
- */
- public function removeRole($rid) {
- $this->account->removeRole($rid);
- $this->account->save();
- }
-
- /**
- * Block a user and remove or reassign their content.
- */
- public function cancel() {
- if (drush_get_option('delete-content')) {
- user_cancel(array(), $this->id(), 'user_cancel_delete');
- }
- else {
- user_cancel(array(), $this->id(), 'user_cancel_reassign');
- }
- // I got the following technique here: http://drupal.org/node/638712
- $batch =& batch_get();
- $batch['progressive'] = FALSE;
- batch_process();
- }
-
- /**
- * Change a user's password.
- *
- * @param $password
- */
- public function password($password) {
- $this->account->setPassword($password);
- $this->account->save();
- }
-
- /**
- * Build a one time login link.
- *
- * @param string $path
- * @return string
- */
- public function passResetUrl($path = '') {
- $url = user_pass_reset_url($this->account) . '/login';
- if ($path) {
- $url .= '?destination=' . $path;
- }
- return $url;
- }
-
- /**
- * Get a user's name.
- * @return string
- */
- public function getUsername() {
- return $this->account->getUsername();
- }
-
- /**
- * Return an id from a Drupal user account.
- * @return int
- */
- public function id() {
- return $this->account->id();
- }
-}