Skip to content

Commit

Permalink
Merge branch 'master' into release and updated version
Browse files Browse the repository at this point in the history
  • Loading branch information
ssddanbrown committed Feb 11, 2018
2 parents 22df25a + 981d215 commit ac3ba59
Show file tree
Hide file tree
Showing 160 changed files with 4,051 additions and 754 deletions.
13 changes: 9 additions & 4 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,15 @@ GITHUB_APP_SECRET=false
GOOGLE_APP_ID=false
GOOGLE_APP_SECRET=false
OKTA_BASE_URL=false
OKTA_KEY=false
OKTA_SECRET=false
OKTA_APP_ID=false
OKTA_APP_SECRET=false
TWITCH_APP_ID=false
TWITCH_APP_SECRET=false
GITLAB_APP_ID=false
GITLAB_APP_SECRET=false
GITLAB_BASE_URI=false

# External services such as Gravatar
# External services such as Gravatar and Draw.IO
DISABLE_EXTERNAL_SERVICES=false

# LDAP Settings
Expand All @@ -67,4 +72,4 @@ MAIL_HOST=localhost
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_ENCRYPTION=null
8 changes: 5 additions & 3 deletions app/Activity.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ class Activity extends Model
*/
public function entity()
{
if ($this->entity_type === '') $this->entity_type = null;
if ($this->entity_type === '') {
$this->entity_type = null;
}
return $this->morphTo('entity');
}

Expand All @@ -43,8 +45,8 @@ public function getText()
* @param $activityB
* @return bool
*/
public function isSimilarTo($activityB) {
public function isSimilarTo($activityB)
{
return [$this->key, $this->entity_type, $this->entity_id] === [$activityB->key, $activityB->entity_type, $activityB->entity_id];
}

}
6 changes: 3 additions & 3 deletions app/Attachment.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<?php namespace BookStack;


class Attachment extends Ownable
{
protected $fillable = ['name', 'order'];
Expand All @@ -11,7 +10,9 @@ class Attachment extends Ownable
*/
public function getFileName()
{
if (str_contains($this->name, '.')) return $this->name;
if (str_contains($this->name, '.')) {
return $this->name;
}
return $this->name . '.' . $this->extension;
}

Expand All @@ -32,5 +33,4 @@ public function getUrl()
{
return baseUrl('/attachments/' . $this->id);
}

}
5 changes: 3 additions & 2 deletions app/Book.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@ public function getUrl($path = false)
public function getBookCover($width = 440, $height = 250)
{
$default = baseUrl('/book_default_cover.png');
if (!$this->image_id) return $default;
if (!$this->image_id) {
return $default;
}

try {
$cover = $this->cover ? baseUrl($this->cover->getThumb($width, $height, false)) : $default;
Expand Down Expand Up @@ -91,5 +93,4 @@ public function entityRawQuery()
{
return "'BookStack\\\\Book' as entity_type, id, id as entity_id, slug, name, {$this->textField} as text,'' as html, '0' as book_id, '0' as priority, '0' as chapter_id, '0' as draft, created_by, updated_by, updated_at, created_at";
}

}
2 changes: 0 additions & 2 deletions app/Chapter.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<?php namespace BookStack;


class Chapter extends Entity
{
protected $fillable = ['name', 'description', 'priority', 'book_id'];
Expand Down Expand Up @@ -59,5 +58,4 @@ public function entityRawQuery()
{
return "'BookStack\\\\Chapter' as entity_type, id, id as entity_id, slug, name, {$this->textField} as text, '' as html, book_id, priority, '0' as chapter_id, '0' as draft, created_by, updated_by, updated_at, created_at";
}

}
85 changes: 85 additions & 0 deletions app/Console/Commands/CreateAdmin.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
<?php

namespace BookStack\Console\Commands;

use BookStack\Repos\UserRepo;
use Illuminate\Console\Command;

class CreateAdmin extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'bookstack:create-admin
{--email= : The email address for the new admin user}
{--name= : The name of the new admin user}
{--password= : The password to assign to the new admin user}';

/**
* The console command description.
*
* @var string
*/
protected $description = 'Add a new admin user to the system';

protected $userRepo;

/**
* Create a new command instance.
*
* @param UserRepo $userRepo
*/
public function __construct(UserRepo $userRepo)
{
$this->userRepo = $userRepo;
parent::__construct();
}

/**
* Execute the console command.
*
* @return mixed
* @throws \BookStack\Exceptions\NotFoundException
*/
public function handle()
{
$email = trim($this->option('email'));
if (empty($email)) {
$email = $this->ask('Please specify an email address for the new admin user');
}
if (strlen($email) < 5 || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
return $this->error('Invalid email address provided');
}

if ($this->userRepo->getByEmail($email) !== null) {
return $this->error('A user with the provided email already exists!');
}

$name = trim($this->option('name'));
if (empty($name)) {
$name = $this->ask('Please specify an name for the new admin user');
}
if (strlen($name) < 2) {
return $this->error('Invalid name provided');
}

$password = trim($this->option('password'));
if (empty($password)) {
$password = $this->secret('Please specify a password for the new admin user');
}
if (strlen($password) < 5) {
return $this->error('Invalid password provided, Must be at least 5 characters');
}


$user = $this->userRepo->create(['email' => $email, 'name' => $name, 'password' => $password]);
$this->userRepo->attachSystemRole($user, 'admin');
$this->userRepo->downloadGravatarToUserAvatar($user);
$user->email_confirmed = true;
$user->save();

$this->info("Admin account with email \"{$user->email}\" successfully created!");
}
}
57 changes: 57 additions & 0 deletions app/Console/Commands/DeleteUsers.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<?php

namespace BookStack\Console\Commands;

use BookStack\User;
use BookStack\Repos\UserRepo;
use Illuminate\Console\Command;

class DeleteUsers extends Command
{

/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'bookstack:delete-users';

protected $user;

protected $userRepo;

/**
* The console command description.
*
* @var string
*/
protected $description = 'Delete users that are not "admin" or system users.';

public function __construct(User $user, UserRepo $userRepo)
{
$this->user = $user;
$this->userRepo = $userRepo;
parent::__construct();
}

public function handle()
{
$confirm = $this->ask('This will delete all users from the system that are not "admin" or system users. Are you sure you want to continue? (Type "yes" to continue)');
$numDeleted = 0;
if (strtolower(trim($confirm)) === 'yes') {
$totalUsers = $this->user->count();
$users = $this->user->where('system_name', '=', null)->with('roles')->get();
foreach ($users as $user) {
if ($user->hasSystemRole('admin')) {
// don't delete users with "admin" role
continue;
}
$this->userRepo->destroy($user);
++$numDeleted;
}
$this->info("Deleted $numDeleted of $totalUsers total users.");
} else {
$this->info('Exiting...');
}
}
}
20 changes: 14 additions & 6 deletions app/Entity.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<?php namespace BookStack;


use Illuminate\Database\Eloquent\Relations\MorphMany;

class Entity extends Ownable
Expand Down Expand Up @@ -28,7 +27,9 @@ public function matchesOrContains(Entity $entity)
{
$matches = [get_class($this), $this->id] === [get_class($entity), $entity->id];

if ($matches) return true;
if ($matches) {
return true;
}

if (($entity->isA('chapter') || $entity->isA('page')) && $this->isA('book')) {
return $entity->book_id === $this->id;
Expand Down Expand Up @@ -159,7 +160,9 @@ public static function getEntityInstance($type)
*/
public function getShortName($length = 25)
{
if (strlen($this->name) <= $length) return $this->name;
if (strlen($this->name) <= $length) {
return $this->name;
}
return substr($this->name, 0, $length - 3) . '...';
}

Expand All @@ -176,13 +179,18 @@ public function getText()
* Return a generalised, common raw query that can be 'unioned' across entities.
* @return string
*/
public function entityRawQuery(){return '';}
public function entityRawQuery()
{
return '';
}

/**
* Get the url of this entity
* @param $path
* @return string
*/
public function getUrl($path){return '/';}

public function getUrl($path)
{
return '/';
}
}
1 change: 0 additions & 1 deletion app/EntityPermission.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<?php namespace BookStack;


class EntityPermission extends Model
{

Expand Down
4 changes: 3 additions & 1 deletion app/Exceptions/AuthException.php
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
<?php namespace BookStack\Exceptions;

class AuthException extends PrettyException
{

class AuthException extends PrettyException {}
}
4 changes: 3 additions & 1 deletion app/Exceptions/ConfirmationEmailException.php
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
<?php namespace BookStack\Exceptions;

class ConfirmationEmailException extends NotifyException
{

class ConfirmationEmailException extends NotifyException {}
}
4 changes: 3 additions & 1 deletion app/Exceptions/FileUploadException.php
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
<?php namespace BookStack\Exceptions;

class FileUploadException extends PrettyException
{

class FileUploadException extends PrettyException {}
}
Loading

0 comments on commit ac3ba59

Please sign in to comment.