Dan Brown

Added options to allow whole site to be made public. Fixes #3.

...@@ -4,6 +4,7 @@ namespace Oxbow\Http\Middleware; ...@@ -4,6 +4,7 @@ namespace Oxbow\Http\Middleware;
4 4
5 use Closure; 5 use Closure;
6 use Illuminate\Contracts\Auth\Guard; 6 use Illuminate\Contracts\Auth\Guard;
7 +use Setting;
7 8
8 class Authenticate 9 class Authenticate
9 { 10 {
...@@ -33,7 +34,8 @@ class Authenticate ...@@ -33,7 +34,8 @@ class Authenticate
33 */ 34 */
34 public function handle($request, Closure $next) 35 public function handle($request, Closure $next)
35 { 36 {
36 - if ($this->auth->guest()) { 37 + $sitePublic = Setting::get('app-public', false) === 'true';
38 + if ($this->auth->guest() && !$sitePublic) {
37 if ($request->ajax()) { 39 if ($request->ajax()) {
38 return response('Unauthorized.', 401); 40 return response('Unauthorized.', 401);
39 } else { 41 } else {
......
...@@ -68,6 +68,9 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon ...@@ -68,6 +68,9 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon
68 */ 68 */
69 public function can($permissionName) 69 public function can($permissionName)
70 { 70 {
71 + if($this->email == 'guest') {
72 + return false;
73 + }
71 $permissions = $this->role->permissions()->get(); 74 $permissions = $this->role->permissions()->get();
72 $permissionSearch = $permissions->search(function ($item, $key) use ($permissionName) { 75 $permissionSearch = $permissions->search(function ($item, $key) use ($permissionName) {
73 return $item->name == $permissionName; 76 return $item->name == $permissionName;
......
...@@ -64,6 +64,7 @@ ...@@ -64,6 +64,7 @@
64 <a href="/settings"><i class="zmdi zmdi-settings"></i>Settings</a> 64 <a href="/settings"><i class="zmdi zmdi-settings"></i>Settings</a>
65 @endif 65 @endif
66 </div> 66 </div>
67 + @if($signedIn)
67 <img class="avatar" src="{{$currentUser->getAvatar(30)}}" alt="{{ $currentUser->name }}"> 68 <img class="avatar" src="{{$currentUser->getAvatar(30)}}" alt="{{ $currentUser->name }}">
68 <div class="dropdown-container" data-dropdown> 69 <div class="dropdown-container" data-dropdown>
69 <span class="user-name" data-dropdown-toggle> 70 <span class="user-name" data-dropdown-toggle>
...@@ -78,6 +79,7 @@ ...@@ -78,6 +79,7 @@
78 </li> 79 </li>
79 </ul> 80 </ul>
80 </div> 81 </div>
82 + @endif
81 83
82 </div> 84 </div>
83 </div> 85 </div>
......
...@@ -14,6 +14,11 @@ ...@@ -14,6 +14,11 @@
14 <input type="text" value="{{ Setting::get('app-name') }}" name="setting-app-name" id="setting-app-name"> 14 <input type="text" value="{{ Setting::get('app-name') }}" name="setting-app-name" id="setting-app-name">
15 </div> 15 </div>
16 <div class="form-group"> 16 <div class="form-group">
17 + <label for="setting-app-public">Allow public viewing?</label>
18 + <label><input type="radio" name="setting-app-public" @if(Setting::get('app-public') == 'true') checked @endif value="true"> Yes</label>
19 + <label><input type="radio" name="setting-app-public" @if(Setting::get('app-public') == 'false') checked @endif value="false"> No</label>
20 + </div>
21 + <div class="form-group">
17 <button type="submit" class="button pos">Update Settings</button> 22 <button type="submit" class="button pos">Update Settings</button>
18 </div> 23 </div>
19 </form> 24 </form>
......