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,20 +64,22 @@ ...@@ -64,20 +64,22 @@
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 - <img class="avatar" src="{{$currentUser->getAvatar(30)}}" alt="{{ $currentUser->name }}"> 67 + @if($signedIn)
68 - <div class="dropdown-container" data-dropdown> 68 + <img class="avatar" src="{{$currentUser->getAvatar(30)}}" alt="{{ $currentUser->name }}">
69 - <span class="user-name" data-dropdown-toggle> 69 + <div class="dropdown-container" data-dropdown>
70 - {{ $currentUser->name }} <i class="zmdi zmdi-caret-down"></i> 70 + <span class="user-name" data-dropdown-toggle>
71 - </span> 71 + {{ $currentUser->name }} <i class="zmdi zmdi-caret-down"></i>
72 - <ul class="dropdown"> 72 + </span>
73 - <li> 73 + <ul class="dropdown">
74 - <a href="/users/{{$currentUser->id}}" class="text-primary"><i class="zmdi zmdi-edit zmdi-hc-lg"></i>Edit Profile</a> 74 + <li>
75 - </li> 75 + <a href="/users/{{$currentUser->id}}" class="text-primary"><i class="zmdi zmdi-edit zmdi-hc-lg"></i>Edit Profile</a>
76 - <li> 76 + </li>
77 - <a href="/logout" class="text-neg"><i class="zmdi zmdi-run zmdi-hc-lg"></i>Logout</a> 77 + <li>
78 - </li> 78 + <a href="/logout" class="text-neg"><i class="zmdi zmdi-run zmdi-hc-lg"></i>Logout</a>
79 - </ul> 79 + </li>
80 - </div> 80 + </ul>
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>
......