示例#1
0
 function setUp()
 {
     // Enable the module.
     parent::setUp('merci');
     $perms = user_permission_get_modules();
     $this->verbose('perms: ' . var_export($perms, TRUE));
     // Create admin user.
     $this->admin_user = $this->drupalCreateUser(array('administer nodes', 'bypass node access', 'administer content types', 'access administration pages', 'administer site configuration', 'view revisions', 'revert revisions', 'administer MERCI', 'manage reservations'));
     // Login the admin user.
     $this->drupalLogin($this->admin_user);
     $settings = array('merci_default_reservation_status' => '2', 'merci_max_days_advance_reservation' => '0', 'merci_saturday_is_weekend' => '1', 'merci_sunday_is_weekend' => '1', 'merci_hours_monday' => '09:00-17:00', 'merci_hours_tuesday' => '09:00-17:00', 'merci_hours_wednesday' => '09:00-17:00', 'merci_hours_thursday' => '09:00-17:00', 'merci_hours_friday' => '09:00-17:00', 'merci_hours_saturday' => '09:00-17:00', 'merci_hours_sunday' => '09:00-17:00', 'merci_hours_admin' => '07:00-22:00', 'merci_closed_dates' => '12-25', 'merci_lock' => FALSE);
     $this->merciCreateConfig($settings);
     $settings = array('date_default_timezone' => 'America/Los_Angeles');
     $this->drupalPost('admin/config/regional/settings', $settings, t('Save configuration'));
     $this->assertText(t("The configuration options have been saved."));
     $settings = array('instance[widget][settings][input_format]' => 'Y-m-d H:i:s');
     $this->drupalPost('admin/structure/types/manage/merci-reservation/fields/field_merci_date', $settings, t('Save settings'));
     $this->assertText(t("Saved Reservation configuration"));
 }
示例#2
0
 /**
  * Grant permissions to a specific role, if it exists.
  *
  * @param string $role
  *    Role machine name.
  * @param string $permission
  *    Permission machine name.
  * @param string $module
  *    Module name.
  *
  * @return bool
  *    TRUE if operation was successful, FALSE otherwise.
  */
 public function grantPermission($role, $permission, $module = NULL)
 {
     $permission_rebuilt =& drupal_static(__CLASS__ . ':' . __FUNCTION__);
     if (!$permission_rebuilt) {
         // Make sure the list of available node types is up to date.
         node_types_rebuild();
         // Reset hook_permission() cached information.
         module_implements('permission', FALSE, TRUE);
         $permission_rebuilt = TRUE;
     }
     $permissions = is_array($permission) ? $permission : array($permission);
     $role_object = user_role_load_by_name($role);
     if ($role_object) {
         // Use code from user_role_grant_permissions() in order to be able
         // to force medule field in special cases.
         $modules = user_permission_get_modules();
         // Grant new permissions for the role.
         foreach ($permissions as $name) {
             $modules[$name] = isset($modules[$name]) ? $modules[$name] : $module;
             db_merge('role_permission')->key(array('rid' => $role_object->rid, 'permission' => $name))->fields(array('module' => $modules[$name]))->execute();
         }
         // Clear the user access cache.
         drupal_static_reset('user_access');
         drupal_static_reset('user_role_permissions');
         return TRUE;
     } else {
         return FALSE;
     }
 }
 /**
  * Implements Drupal\configuration\Config\Configuration::saveToActiveStore().
  */
 public function saveToActiveStore(ConfigIteratorSettings &$settings)
 {
     node_types_rebuild();
     $exist = FALSE;
     $roles = static::get_roles();
     $permissions_by_role = static::get_permissions(FALSE);
     $map = user_permission_get_modules();
     $permission = $this->getData();
     $perm = $permission['permission'];
     foreach ($roles as $role) {
         if (isset($map[$perm])) {
             $exist = TRUE;
             if (in_array($role, $permission['roles'])) {
                 $permissions_by_role[$role][$perm] = TRUE;
             } else {
                 $permissions_by_role[$role][$perm] = FALSE;
             }
         }
     }
     if (!$exist) {
         drupal_set_message(t('Configuration Management: Permission %permission does not exist and can not be set.', array('%permission' => $perm)), 'error');
     }
     // Write the updated permissions.
     foreach ($roles as $rid => $role) {
         if (isset($permissions_by_role[$role])) {
             user_role_change_permissions($rid, $permissions_by_role[$role]);
         }
     }
     $settings->addInfo('imported', $this->getUniqueId());
 }