You are here

author.inc in Entity Construction Kit (ECK) 7.3

Same filename and directory in other branches
  1. 7.2 plugins/property_behavior/author.inc

File

plugins/property_behavior/author.inc
View source
<?php

/**
 * @file
 * Author Behavior.
 *
 * Save the user id of the user when the entity is created.
 */
$plugin = array(
  'label' => "Author",
  'entity_save' => 'eck_author_property_entity_save',
  'property_info' => 'eck_author_property_property_info',
  'permissions' => 'eck_author_property_permissions',
);

/**
 * When the entity is first saved, store the current user id as the author.
 */
function eck_author_property_entity_save($property, $vars) {
  $entity = $vars['entity'];
  if (isset($entity->is_new) && $entity->is_new && empty($entity->{$property})) {
    global $user;
    $entity->{$property} = $user->uid;
  }
}

/**
 * Let the system know that this property holds a user id.
 */
function eck_author_property_property_info($property, $vars) {
  $vars['properties'][$property]['type'] = 'user';
  return $vars;
}

/**
 * Augmenting the permission system with own permissions.
 */
function eck_author_property_permissions($property, $vars) {
  $op = $vars['op'];
  $perms = $vars['permissions'];
  $account = $vars['account'];
  $entity = $vars['entity'];
  $allow = FALSE;
  foreach ($perms as $perm) {
    $p = $perm->permission;
    $property = $entity->{$property};
    $uid = $account->uid;
    if (strcmp($p, "{$op} own entity") == 0 && $property == $uid) {
      $allow = TRUE;
    }
  }
  return $allow;
}

Functions

Namesort descending Description
eck_author_property_entity_save When the entity is first saved, store the current user id as the author.
eck_author_property_permissions Augmenting the permission system with own permissions.
eck_author_property_property_info Let the system know that this property holds a user id.