Code Duplication    Length = 15-20 lines in 3 locations

code/model/BlogPost.php 3 locations

@@ 357-371 (lines=15) @@
354
	 *
355
	 * @return bool
356
	 */
357
	public function canCreateCategories($member = null) {
358
		$member = $this->getMember($member);
359
360
		$parent = $this->Parent();
361
362
		if(!$parent || !$parent->exists() || !($parent instanceof Blog)) {
363
			return false;
364
		}
365
366
		if($parent->isEditor($member)) {
367
			return true;
368
		}
369
370
		return Permission::checkMember($member, 'ADMIN');
371
	}
372
373
	/**
374
	 * Determine whether user can create new tags.
@@ 380-398 (lines=19) @@
377
	 *
378
	 * @return bool
379
	 */
380
	public function canCreateTags($member = null) {
381
		$member = $this->getMember($member);
382
383
		$parent = $this->Parent();
384
385
		if(!$parent || !$parent->exists() || !($parent instanceof Blog)) {
386
			return false;
387
		}
388
389
		if($parent->isEditor($member)) {
390
			return true;
391
		}
392
393
		if($parent->isWriter($member)) {
394
			return true;
395
		}
396
397
		return Permission::checkMember($member, 'ADMIN');
398
	}
399
400
	/**
401
	 * {@inheritdoc}
@@ 445-464 (lines=20) @@
442
	/**
443
	 * {@inheritdoc}
444
	 */
445
	public function canView($member = null) {
446
		$member = $this->getMember($member);
447
448
		if(!parent::canView($member)) {
449
			return false;
450
		}
451
452
		/**
453
		 * @var SS_Datetime $publishDate
454
		 */
455
		$publishDate = $this->dbObject('PublishDate');
456
457
		// Show past posts
458
		if(!$publishDate->exists() || !$publishDate->InFuture()) {
459
			return true;
460
		}
461
462
		// Anyone that can edit this page can view it
463
		return $this->canEdit($member);
464
	}
465
466
	/**
467
	 * {@inheritdoc}