Skip to content

Commit 246b8dd

Browse files
author
jsalzano92
committed
Worked on task list. -Joe
1 parent 9b09c3d commit 246b8dd

File tree

20 files changed

+779
-59
lines changed

20 files changed

+779
-59
lines changed

app/Http/Controllers/CommentController.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,15 @@ public function createComment(request $request)
1010
{
1111
$comment = new Comment();
1212
$comment->data = $request['data'];
13-
$comment->post_id = $request->id;
14-
$comment->user_id = $request->user()->id;
13+
$comment->post_id = $request['post_id'];
14+
$comment->user_id = $request['user_id'];
1515
$comment->save();
16-
return redirect('/news_post/'.$request->id);
16+
17+
return array('success' => 'true');
18+
}
19+
20+
public function deleteComment(request $request) {
21+
Comment::Find($request['id'])->delete();
22+
return array('success' => 'true');
1723
}
1824
}

app/Http/Controllers/PostController.php

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
namespace SoftwareHerd\Http\Controllers;
33

44
use SoftwareHerd\Post;
5+
use SoftwareHerd\Project;
56
use Illuminate\Http\Request;
67

78
class PostController extends Controller
@@ -14,11 +15,33 @@ public function createPost(request $request)
1415
$post->info = $request['info'];
1516
$post->posting_project = $request['project_id'];
1617
$post->save();
17-
return redirect('/project/'.$request['project_id']);
18+
return redirect('/news_post/'.$post->id);
1819
}
1920

2021
public function post($id) {
2122
$post = Post::find($id);
22-
return view('news_post', array('post' => $post));
23+
$project = Project::find($post->posting_project);
24+
return view('news_post', array('post' => $post, 'project' => $project));
25+
}
26+
27+
public function getPostForEdit(request $request) {
28+
$post = Post::find($request['id']);
29+
return array('title' => $post->title, 'summary' => $post->summary, 'info' => $post->info);
30+
}
31+
32+
public function updatePost(request $request)
33+
{
34+
$post = Post::find($request['post_id']);
35+
$post->title = $request['title'];
36+
$post->summary = $request['summary'];
37+
$post->info = $request['info'];
38+
$post->save();
39+
40+
return redirect('/news_post/'.$request['post_id']);
41+
}
42+
43+
public function deletePost(request $request) {
44+
Post::Find($request['id'])->delete();
45+
return array('success' => 'true');
2346
}
2447
}

app/Http/Controllers/ProjectController.php

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
namespace SoftwareHerd\Http\Controllers;
33

44
use SoftwareHerd\Project;
5+
use SoftwareHerd\User;
56
use SoftwareHerd\User_Projects;
67
use SoftwareHerd\User_Project_Requests;
78
use Illuminate\Http\Request;
@@ -58,34 +59,44 @@ public function admin($id) {
5859
$project = Project::find($id);
5960
if(!\Auth::user()->can('admin', $project))
6061
return redirect('/project_library');
61-
return view('project_admin', array('project' => $project));
62+
$users = User_Projects::get()->where('project_id', $id);
63+
$user_requests = User_Project_Requests::get()->where('project_id', $id);
64+
return view('project_admin/admin', array('project' => $project, 'users' => $users, 'user_requests' => $user_requests));
6265
}
6366

6467
public function promote(request $request) {
6568
$level = \DB::table('user_projects')->where('user_id', $request['user'])->where('project_id', $request['project'])->value('level');
69+
70+
if($level > 2)
71+
return;
72+
6673
$level = $level + 1;
6774
\DB::table('user_projects')->where('user_id', $request['user'])
6875
->where('project_id', $request['project'])
6976
->update(['level' => $level]);
7077

71-
return redirect('/project_admin/'.$request['project']);
78+
return array('success'=>'true');
7279
}
7380
public function demote(request $request) {
7481
$level = \DB::table('user_projects')->where('user_id', $request['user'])->where('project_id', $request['project'])->value('level');
82+
83+
if($level < 1)
84+
return;
85+
7586
$level = $level - 1;
7687
\DB::table('user_projects')->where('user_id', $request['user'])
7788
->where('project_id', $request['project'])
7889
->update(['level' => $level]);
7990

80-
return redirect('/project_admin/'.$request['project']);
91+
return array('success'=>'true');
8192
}
8293

8394
public function removeMember(request $request) {
8495
\DB::table('user_projects')->where('user_id', $request['user'])
8596
->where('project_id', $request['project'])
8697
->delete();
8798

88-
return redirect('/project_admin/'.$request['project']);
99+
return array('success'=>'true');
89100
}
90101

91102
public function acceptMember(request $request) {
@@ -102,12 +113,18 @@ public function acceptMember(request $request) {
102113

103114
\DB::table('user_project_requests')->where('user_id', $request['user'])
104115
->where('project_id', $request['project'])->delete();
105-
return redirect('/project_admin/'.$request['project']);
116+
return array('success'=>'true');
106117
}
107118

108119
public function declineMember(request $request) {
109120
\DB::table('user_project_requests')->where('user_id', $request['user'])
110121
->where('project_id', $request['project'])->delete();
111-
return redirect('/project_admin/'.$request['project']);
122+
return array('success'=>'true');
123+
}
124+
125+
public function deleteProject(request $request) {
126+
$project = Project::find($request['id']);
127+
$project->delete();
128+
return array('success'=>'true');
112129
}
113130
}

app/Http/Kernel.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,5 +52,6 @@ class Kernel extends HttpKernel
5252
'can' => \Illuminate\Auth\Middleware\Authorize::class,
5353
'guest' => \SoftwareHerd\Http\Middleware\RedirectIfAuthenticated::class,
5454
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
55+
'admin' => \justAmerican\Http\Middleware\checkAdmin::class,
5556
];
5657
}

app/Http/Middleware/checkAdmin.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace SoftwareHerd\Http\Middleware;
4+
5+
use Closure;
6+
7+
class checkAdmin
8+
{
9+
/**
10+
* Handle an incoming request.
11+
*
12+
* @param \Illuminate\Http\Request $request
13+
* @param \Closure $next
14+
* @return mixed
15+
*/
16+
public function handle($request, Closure $next)
17+
{
18+
if(!\Auth::user())
19+
return redirect('/home');
20+
if(!(\Auth::user()->isSuperAdmin())){
21+
return redirect('/home');
22+
}
23+
return $next($request);
24+
}
25+
}

app/Policies/CommentPolicy.php

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,27 +10,8 @@ class CommentPolicy
1010
{
1111
use HandlesAuthorization;
1212

13-
/**
14-
* Determine whether the user can update the comment.
15-
*
16-
* @param \SoftwareHerd\User $user
17-
* @param \SoftwareHerd\Comment $comment
18-
* @return mixed
19-
*/
20-
public function update(User $user, Comment $comment)
21-
{
22-
//
23-
}
24-
25-
/**
26-
* Determine whether the user can delete the comment.
27-
*
28-
* @param \SoftwareHerd\User $user
29-
* @param \SoftwareHerd\Comment $comment
30-
* @return mixed
31-
*/
3213
public function delete(User $user, Comment $comment)
3314
{
34-
//
15+
return $user->id === $comment->user_id;
3516
}
36-
}
17+
}

app/Policies/ProjectPolicy.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,14 @@
99
class ProjectPolicy
1010
{
1111
use HandlesAuthorization;
12-
12+
13+
public function before($user, $ability)
14+
{
15+
if ($user->isSuperAdmin()) {
16+
return true;
17+
}
18+
}
19+
1320
public function member(User $user, Project $project)
1421
{
1522
$user_projects = \DB::table('user_projects')->where('project_id', $project->id)->where('user_id', $user->id)->first();

app/User.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ public function comments()
1818
{
1919
return $this->hasMany('SoftwareHerd\Comment');
2020
}
21+
22+
public function isSuperAdmin()
23+
{
24+
return $this->admin;
25+
}
2126

2227
/**
2328
* The attributes that are mass assignable.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
use Illuminate\Support\Facades\Schema;
4+
use Illuminate\Database\Schema\Blueprint;
5+
use Illuminate\Database\Migrations\Migration;
6+
7+
class AddAdminToUsers extends Migration
8+
{
9+
/**
10+
* Run the migrations.
11+
*
12+
* @return void
13+
*/
14+
public function up()
15+
{
16+
Schema::table('users', function (Blueprint $table) {
17+
$table->boolean('admin')->default(0);
18+
});
19+
}
20+
21+
/**
22+
* Reverse the migrations.
23+
*
24+
* @return void
25+
*/
26+
public function down()
27+
{
28+
Schema::table('users', function (Blueprint $table) {
29+
$table->dropColumn('admin');
30+
});
31+
}
32+
}

public/css/admin.css

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
a{
2+
cursor: pointer;
3+
}
4+
5+
a:hover{
6+
text-decoration: none;
7+
}
8+
9+
#adminButtons a{
10+
border-top-left-radius: 10px;
11+
border-bottom-left-radius: 10px;
12+
text-align: right;
13+
padding:5px;
14+
color: #777;
15+
display: block;
16+
height: 30px;
17+
cursor: pointer;
18+
}
19+
20+
#adminButtons a:hover{
21+
color: #000;
22+
text-decoration: none;
23+
}
24+
25+
.active{
26+
border: 1px #EEE;
27+
background-color: #F5F5F5;
28+
padding: 0;
29+
color: #000 !important;
30+
}
31+
32+
#adminContent{
33+
min-height: 400px;
34+
padding: 5px;
35+
border: solid 1px #EEE;
36+
color: #000;
37+
}
38+
39+
.table-fixed{
40+
table-layout:fixed;
41+
}
42+
43+
.table-fixed .no-overflow{
44+
word-break:break-all;
45+
overflow: hidden;
46+
text-overflow: ellipsis;
47+
white-space: nowrap;
48+
}

0 commit comments

Comments
 (0)