Completed
Push — master ( fb73c0...e952da )
by Sherif
07:01
created
src/Modules/V1/Acl/ModelObservers/AclUserObserver.php 1 patch
Indentation   +52 added lines, -52 removed lines patch added patch discarded remove patch
@@ -5,57 +5,57 @@
 block discarded – undo
5 5
  */
6 6
 class AclUserObserver {
7 7
 
8
-    public function saving($model)
9
-    {
10
-        //
11
-    }
12
-
13
-    public function saved($model)
14
-    {
15
-        //
16
-    }
17
-
18
-    public function creating($model)
19
-    {
20
-        //
21
-    }
22
-
23
-    public function created($model)
24
-    {
25
-        //
26
-    }
27
-
28
-    public function updating($model)
29
-    {
30
-        if ($model->password) 
31
-        {
32
-            $model->last_change_password = \Carbon\Carbon::now()->toDateTimeString();
33
-        }
34
-    }
35
-
36
-    public function updated($model)
37
-    {
38
-        //
39
-    }
40
-
41
-    /**
42
-     * Soft delete user logs.
43
-     * 
44
-     * @param  object $model the delted model.
45
-     * @return void
46
-     */
47
-    public function deleting($model)
48
-    {
49
-        if ($model->getOriginal('id') == \JWTAuth::parseToken()->authenticate()->id) 
50
-        {
51
-            \ErrorHandler::noPermissions();
52
-        }
53
-        $model->logs()->delete();
54
-    }
55
-
56
-    public function deleted($model)
57
-    {
58
-        //
59
-    }
8
+	public function saving($model)
9
+	{
10
+		//
11
+	}
12
+
13
+	public function saved($model)
14
+	{
15
+		//
16
+	}
17
+
18
+	public function creating($model)
19
+	{
20
+		//
21
+	}
22
+
23
+	public function created($model)
24
+	{
25
+		//
26
+	}
27
+
28
+	public function updating($model)
29
+	{
30
+		if ($model->password) 
31
+		{
32
+			$model->last_change_password = \Carbon\Carbon::now()->toDateTimeString();
33
+		}
34
+	}
35
+
36
+	public function updated($model)
37
+	{
38
+		//
39
+	}
40
+
41
+	/**
42
+	 * Soft delete user logs.
43
+	 * 
44
+	 * @param  object $model the delted model.
45
+	 * @return void
46
+	 */
47
+	public function deleting($model)
48
+	{
49
+		if ($model->getOriginal('id') == \JWTAuth::parseToken()->authenticate()->id) 
50
+		{
51
+			\ErrorHandler::noPermissions();
52
+		}
53
+		$model->logs()->delete();
54
+	}
55
+
56
+	public function deleted($model)
57
+	{
58
+		//
59
+	}
60 60
 
61 61
 }
62 62
\ No newline at end of file
Please login to merge, or discard this patch.
src/Modules/V1/Acl/Database/Migrations/2015_12_20_124153_users.php 1 patch
Indentation   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -13,16 +13,16 @@
 block discarded – undo
13 13
 	public function up()
14 14
 	{
15 15
 		Schema::create('users', function (Blueprint $table) {
16
-            $table->increments('id');
17
-            $table->string('name', 100)->default('');
18
-            $table->string('email')->unique();
19
-            $table->string('password', 60);
20
-            $table->boolean('blocked')->default(0);
16
+			$table->increments('id');
17
+			$table->string('name', 100)->default('');
18
+			$table->string('email')->unique();
19
+			$table->string('password', 60);
20
+			$table->boolean('blocked')->default(0);
21 21
 			$table->date('last_change_password')->default(null);
22
-            $table->softDeletes();
23
-            $table->rememberToken();
24
-            $table->timestamps();
25
-        });
22
+			$table->softDeletes();
23
+			$table->rememberToken();
24
+			$table->timestamps();
25
+		});
26 26
 	}
27 27
 
28 28
 	/**
Please login to merge, or discard this patch.
src/Modules/V1/Core/Http/Controllers/BaseApiController.php 1 patch
Indentation   +237 added lines, -237 removed lines patch added patch discarded remove patch
@@ -6,244 +6,244 @@
 block discarded – undo
6 6
 
7 7
 class BaseApiController extends Controller
8 8
 {
9
-    /**
10
-     * The model implementation.
11
-     * 
12
-     * @var model
13
-     */
14
-    protected $model;
15
-
16
-    /**
17
-     * The config implementation.
18
-     * 
19
-     * @var config
20
-     */
21
-    protected $config;
22
-
23
-    public function __construct()
24
-    {
25
-        \Session::set('timeZoneDiff', \Request::header('time-zone-diff') ?: 0);
26
-
27
-        $locale = \Request::header('locale');
28
-        switch ($locale) 
29
-        {
30
-            case 'en':
31
-            \App::setLocale('en');
32
-            \Session::set('locale', 'en');
33
-            break;
34
-
35
-            case 'ar':
36
-            \App::setLocale('ar');
37
-            \Session::set('locale', 'ar');
38
-            break;
39
-
40
-            case 'all':
41
-            \App::setLocale('en');
42
-            \Session::set('locale', 'all');
43
-            break;
44
-
45
-            default:
46
-            \App::setLocale('en');
47
-            \Session::set('locale', 'en');
48
-            break;
49
-        }
9
+	/**
10
+	 * The model implementation.
11
+	 * 
12
+	 * @var model
13
+	 */
14
+	protected $model;
15
+
16
+	/**
17
+	 * The config implementation.
18
+	 * 
19
+	 * @var config
20
+	 */
21
+	protected $config;
22
+
23
+	public function __construct()
24
+	{
25
+		\Session::set('timeZoneDiff', \Request::header('time-zone-diff') ?: 0);
26
+
27
+		$locale = \Request::header('locale');
28
+		switch ($locale) 
29
+		{
30
+			case 'en':
31
+			\App::setLocale('en');
32
+			\Session::set('locale', 'en');
33
+			break;
34
+
35
+			case 'ar':
36
+			\App::setLocale('ar');
37
+			\Session::set('locale', 'ar');
38
+			break;
39
+
40
+			case 'all':
41
+			\App::setLocale('en');
42
+			\Session::set('locale', 'all');
43
+			break;
44
+
45
+			default:
46
+			\App::setLocale('en');
47
+			\Session::set('locale', 'en');
48
+			break;
49
+		}
50 50
         
51
-        $this->config              = \CoreConfig::getConfig();
52
-        $this->model               = property_exists($this, 'model') ? $this->model : false;
53
-        $this->validationRules     = property_exists($this, 'validationRules') ? $this->validationRules : false;
54
-        $this->skipPermissionCheck = property_exists($this, 'skipPermissionCheck') ? $this->skipPermissionCheck : [];
55
-        $this->skipLoginCheck      = property_exists($this, 'skipLoginCheck') ? $this->skipLoginCheck : [];
56
-        $this->relations           = array_key_exists($this->model, $this->config['relations']) ? $this->config['relations'][$this->model] : false;
57
-        $route                     = explode('@',\Route::currentRouteAction())[1];
58
-        $this->checkPermission($route);
59
-    }
60
-
61
-    /**
62
-     * Fetch all records with relations from model repository.
63
-     * 
64
-     * @return \Illuminate\Http\Response
65
-     */
66
-    public function index() 
67
-    {
68
-        if ($this->model)
69
-        {
70
-            $relations = $this->relations && $this->relations['all'] ? $this->relations['all'] : [];
71
-            return \Response::json(call_user_func_array("\Core::{$this->model}", [])->all($relations), 200);
72
-        }
73
-    }
74
-
75
-    /**
76
-     * Fetch the single object with relations from model repository.
77
-     * 
78
-     * @param  integer $id
79
-     * @return \Illuminate\Http\Response
80
-     */
81
-    public function find($id) 
82
-    {
83
-        if ($this->model) 
84
-        {
85
-            $relations = $this->relations && $this->relations['find'] ? $this->relations['find'] : [];
86
-            return \Response::json(call_user_func_array("\Core::{$this->model}", [])->find($id, $relations), 200);
87
-        }
88
-    }
89
-
90
-    /**
91
-     * Paginate all records with relations from model repository
92
-     * that matche the given query.
93
-     * 
94
-     * @param  string  $query
95
-     * @param  integer $perPage
96
-     * @param  string  $sortBy
97
-     * @param  boolean $desc
98
-     * @return \Illuminate\Http\Response
99
-     */
100
-    public function search($query = '', $perPage = 15, $sortBy = 'created_at', $desc = 1) 
101
-    {
102
-        if ($this->model) 
103
-        {
104
-            $relations = $this->relations && $this->relations['search'] ? $this->relations['search'] : [];
105
-            return \Response::json(call_user_func_array("\Core::{$this->model}", [])->search($query, $perPage, $relations, $sortBy, $desc), 200);
106
-        }
107
-    }
108
-
109
-    /**
110
-     * Fetch records from the storage based on the given
111
-     * condition.
112
-     * 
113
-     * @param  \Illuminate\Http\Request  $request
114
-     * @param  string  $sortBy
115
-     * @param  boolean $desc
116
-     * @return \Illuminate\Http\Response
117
-     */
118
-    public function findby(Request $request, $sortBy = 'created_at', $desc = 1) 
119
-    {
120
-        if ($this->model) 
121
-        {
122
-            $relations = $this->relations && $this->relations['findBy'] ? $this->relations['findBy'] : [];
123
-            return \Response::json(call_user_func_array("\Core::{$this->model}", [])->findBy($request->all(), $relations, $sortBy, $desc), 200);
124
-        }
125
-    }
126
-
127
-    /**
128
-     * Fetch the first record from the storage based on the given
129
-     * condition.
130
-     * 
131
-     * @param  \Illuminate\Http\Request  $request
132
-     * @return \Illuminate\Http\Response
133
-     */
134
-    public function first(Request $request) 
135
-    {
136
-        if ($this->model) 
137
-        {
138
-            $relations = $this->relations && $this->relations['first'] ? $this->relations['first'] : [];
139
-            return \Response::json(call_user_func_array("\Core::{$this->model}", [])->first($request->all(), $relations), 200);
140
-        }
141
-    }
142
-
143
-    /**
144
-     * Paginate all records with relations from model repository.
145
-     * 
146
-     * @param  integer $perPage
147
-     * @param  string  $sortBy
148
-     * @param  boolean $desc
149
-     * @return \Illuminate\Http\Response
150
-     */
151
-    public function paginate($perPage = 15, $sortBy = 'created_at', $desc = 1) 
152
-    {
153
-        if ($this->model) 
154
-        {
155
-            $relations = $this->relations && $this->relations['paginate'] ? $this->relations['paginate'] : [];
156
-            return \Response::json(call_user_func_array("\Core::{$this->model}", [])->paginate($perPage, $relations, $sortBy, $desc), 200);
157
-        }
158
-    }
159
-
160
-    /**
161
-     * Fetch all records with relations based on
162
-     * the given condition from storage in pages.
163
-     * 
164
-     * @param  \Illuminate\Http\Request  $request
165
-     * @param  integer $perPage
166
-     * @param  string  $sortBy
167
-     * @param  boolean $desc
168
-     * @return \Illuminate\Http\Response
169
-     */
170
-    public function paginateby(Request $request, $perPage = 15, $sortBy = 'created_at', $desc = 1) 
171
-    {
172
-        if ($this->model) 
173
-        {
174
-            $relations = $this->relations && $this->relations['paginateBy'] ? $this->relations['paginateBy'] : [];
175
-            return \Response::json(call_user_func_array("\Core::{$this->model}", [])->paginateBy($request->all(), $perPage, $relations, $sortBy, $desc), 200);
176
-        }
177
-    }
178
-
179
-    /**
180
-     * Save the given model to repository.
181
-     * 
182
-     * @param  \Illuminate\Http\Request  $request
183
-     * @return \Illuminate\Http\Response
184
-     */
185
-    public function save(Request $request) 
186
-    {
187
-        foreach ($this->validationRules as &$rule) 
188
-        {
189
-            if (strpos($rule, 'exists') && ! strpos($rule, 'deleted_at,NULL')) 
190
-            {
191
-                $rule .= ',deleted_at,NULL';
192
-            }
193
-
194
-            if ($request->has('id')) 
195
-            {
196
-                $rule = str_replace('{id}', $request->get('id'), $rule);
197
-            }
198
-            else
199
-            {
200
-                $rule = str_replace(',{id}', '', $rule);
201
-            }
202
-        }
51
+		$this->config              = \CoreConfig::getConfig();
52
+		$this->model               = property_exists($this, 'model') ? $this->model : false;
53
+		$this->validationRules     = property_exists($this, 'validationRules') ? $this->validationRules : false;
54
+		$this->skipPermissionCheck = property_exists($this, 'skipPermissionCheck') ? $this->skipPermissionCheck : [];
55
+		$this->skipLoginCheck      = property_exists($this, 'skipLoginCheck') ? $this->skipLoginCheck : [];
56
+		$this->relations           = array_key_exists($this->model, $this->config['relations']) ? $this->config['relations'][$this->model] : false;
57
+		$route                     = explode('@',\Route::currentRouteAction())[1];
58
+		$this->checkPermission($route);
59
+	}
60
+
61
+	/**
62
+	 * Fetch all records with relations from model repository.
63
+	 * 
64
+	 * @return \Illuminate\Http\Response
65
+	 */
66
+	public function index() 
67
+	{
68
+		if ($this->model)
69
+		{
70
+			$relations = $this->relations && $this->relations['all'] ? $this->relations['all'] : [];
71
+			return \Response::json(call_user_func_array("\Core::{$this->model}", [])->all($relations), 200);
72
+		}
73
+	}
74
+
75
+	/**
76
+	 * Fetch the single object with relations from model repository.
77
+	 * 
78
+	 * @param  integer $id
79
+	 * @return \Illuminate\Http\Response
80
+	 */
81
+	public function find($id) 
82
+	{
83
+		if ($this->model) 
84
+		{
85
+			$relations = $this->relations && $this->relations['find'] ? $this->relations['find'] : [];
86
+			return \Response::json(call_user_func_array("\Core::{$this->model}", [])->find($id, $relations), 200);
87
+		}
88
+	}
89
+
90
+	/**
91
+	 * Paginate all records with relations from model repository
92
+	 * that matche the given query.
93
+	 * 
94
+	 * @param  string  $query
95
+	 * @param  integer $perPage
96
+	 * @param  string  $sortBy
97
+	 * @param  boolean $desc
98
+	 * @return \Illuminate\Http\Response
99
+	 */
100
+	public function search($query = '', $perPage = 15, $sortBy = 'created_at', $desc = 1) 
101
+	{
102
+		if ($this->model) 
103
+		{
104
+			$relations = $this->relations && $this->relations['search'] ? $this->relations['search'] : [];
105
+			return \Response::json(call_user_func_array("\Core::{$this->model}", [])->search($query, $perPage, $relations, $sortBy, $desc), 200);
106
+		}
107
+	}
108
+
109
+	/**
110
+	 * Fetch records from the storage based on the given
111
+	 * condition.
112
+	 * 
113
+	 * @param  \Illuminate\Http\Request  $request
114
+	 * @param  string  $sortBy
115
+	 * @param  boolean $desc
116
+	 * @return \Illuminate\Http\Response
117
+	 */
118
+	public function findby(Request $request, $sortBy = 'created_at', $desc = 1) 
119
+	{
120
+		if ($this->model) 
121
+		{
122
+			$relations = $this->relations && $this->relations['findBy'] ? $this->relations['findBy'] : [];
123
+			return \Response::json(call_user_func_array("\Core::{$this->model}", [])->findBy($request->all(), $relations, $sortBy, $desc), 200);
124
+		}
125
+	}
126
+
127
+	/**
128
+	 * Fetch the first record from the storage based on the given
129
+	 * condition.
130
+	 * 
131
+	 * @param  \Illuminate\Http\Request  $request
132
+	 * @return \Illuminate\Http\Response
133
+	 */
134
+	public function first(Request $request) 
135
+	{
136
+		if ($this->model) 
137
+		{
138
+			$relations = $this->relations && $this->relations['first'] ? $this->relations['first'] : [];
139
+			return \Response::json(call_user_func_array("\Core::{$this->model}", [])->first($request->all(), $relations), 200);
140
+		}
141
+	}
142
+
143
+	/**
144
+	 * Paginate all records with relations from model repository.
145
+	 * 
146
+	 * @param  integer $perPage
147
+	 * @param  string  $sortBy
148
+	 * @param  boolean $desc
149
+	 * @return \Illuminate\Http\Response
150
+	 */
151
+	public function paginate($perPage = 15, $sortBy = 'created_at', $desc = 1) 
152
+	{
153
+		if ($this->model) 
154
+		{
155
+			$relations = $this->relations && $this->relations['paginate'] ? $this->relations['paginate'] : [];
156
+			return \Response::json(call_user_func_array("\Core::{$this->model}", [])->paginate($perPage, $relations, $sortBy, $desc), 200);
157
+		}
158
+	}
159
+
160
+	/**
161
+	 * Fetch all records with relations based on
162
+	 * the given condition from storage in pages.
163
+	 * 
164
+	 * @param  \Illuminate\Http\Request  $request
165
+	 * @param  integer $perPage
166
+	 * @param  string  $sortBy
167
+	 * @param  boolean $desc
168
+	 * @return \Illuminate\Http\Response
169
+	 */
170
+	public function paginateby(Request $request, $perPage = 15, $sortBy = 'created_at', $desc = 1) 
171
+	{
172
+		if ($this->model) 
173
+		{
174
+			$relations = $this->relations && $this->relations['paginateBy'] ? $this->relations['paginateBy'] : [];
175
+			return \Response::json(call_user_func_array("\Core::{$this->model}", [])->paginateBy($request->all(), $perPage, $relations, $sortBy, $desc), 200);
176
+		}
177
+	}
178
+
179
+	/**
180
+	 * Save the given model to repository.
181
+	 * 
182
+	 * @param  \Illuminate\Http\Request  $request
183
+	 * @return \Illuminate\Http\Response
184
+	 */
185
+	public function save(Request $request) 
186
+	{
187
+		foreach ($this->validationRules as &$rule) 
188
+		{
189
+			if (strpos($rule, 'exists') && ! strpos($rule, 'deleted_at,NULL')) 
190
+			{
191
+				$rule .= ',deleted_at,NULL';
192
+			}
193
+
194
+			if ($request->has('id')) 
195
+			{
196
+				$rule = str_replace('{id}', $request->get('id'), $rule);
197
+			}
198
+			else
199
+			{
200
+				$rule = str_replace(',{id}', '', $rule);
201
+			}
202
+		}
203 203
         
204
-        $this->validate($request, $this->validationRules);
205
-
206
-        if ($this->model) 
207
-        {
208
-            return \Response::json(call_user_func_array("\Core::{$this->model}", [])->save($request->all()), 200);
209
-        }
210
-    }
211
-
212
-    /**
213
-     * Delete by the given id from model repository.
214
-     * 
215
-     * @param  integer  $id
216
-     * @return \Illuminate\Http\Response
217
-     */
218
-    public function delete($id) 
219
-    {
220
-        if ($this->model) 
221
-        {
222
-            return \Response::json(call_user_func_array("\Core::{$this->model}", [])->delete($id), 200);
223
-        }
224
-    }
225
-
226
-    /**
227
-     * Check if the logged in user can do the given permission.
228
-     * 
229
-     * @param  string $permission
230
-     * @return void
231
-     */
232
-    private function checkPermission($permission)
233
-    {
234
-        $permission = $permission !== 'index' ? $permission : 'list';
235
-        if ( ! in_array($permission, $this->skipLoginCheck)) 
236
-        {
237
-            $user = \Core::users()->find(\JWTAuth::parseToken()->authenticate()->id);
238
-            if ($user->blocked)
239
-            {
240
-                \ErrorHandler::userIsBlocked();
241
-            }
204
+		$this->validate($request, $this->validationRules);
205
+
206
+		if ($this->model) 
207
+		{
208
+			return \Response::json(call_user_func_array("\Core::{$this->model}", [])->save($request->all()), 200);
209
+		}
210
+	}
211
+
212
+	/**
213
+	 * Delete by the given id from model repository.
214
+	 * 
215
+	 * @param  integer  $id
216
+	 * @return \Illuminate\Http\Response
217
+	 */
218
+	public function delete($id) 
219
+	{
220
+		if ($this->model) 
221
+		{
222
+			return \Response::json(call_user_func_array("\Core::{$this->model}", [])->delete($id), 200);
223
+		}
224
+	}
225
+
226
+	/**
227
+	 * Check if the logged in user can do the given permission.
228
+	 * 
229
+	 * @param  string $permission
230
+	 * @return void
231
+	 */
232
+	private function checkPermission($permission)
233
+	{
234
+		$permission = $permission !== 'index' ? $permission : 'list';
235
+		if ( ! in_array($permission, $this->skipLoginCheck)) 
236
+		{
237
+			$user = \Core::users()->find(\JWTAuth::parseToken()->authenticate()->id);
238
+			if ($user->blocked)
239
+			{
240
+				\ErrorHandler::userIsBlocked();
241
+			}
242 242
             
243
-            if ( ! in_array($permission, $this->skipPermissionCheck) && ! \Core::users()->can($permission, $this->model))
244
-            {
245
-                \ErrorHandler::noPermissions();
246
-            }
247
-        }
248
-    }
243
+			if ( ! in_array($permission, $this->skipPermissionCheck) && ! \Core::users()->can($permission, $this->model))
244
+			{
245
+				\ErrorHandler::noPermissions();
246
+			}
247
+		}
248
+	}
249 249
 }
Please login to merge, or discard this patch.