diff --git a/app/Controllers/Admin/Groups.php b/app/Controllers/Admin/Groups.php new file mode 100644 index 0000000..4689494 --- /dev/null +++ b/app/Controllers/Admin/Groups.php @@ -0,0 +1,164 @@ +aauth = new Aauth(); + $this->request = Services::request(); + helper('form'); + helper('aauth'); + } + + /** + * Index + * + * @return void + */ + public function index() + { + $data = $this->aauth->listGroupsPaginated(); + + $data['cssFiles'] = [ + '/assets/css/admin/groups/index.css' + ]; + + echo view('Templates/HeaderAdmin', $data); + echo view('Admin/Groups/Home', $data); + echo view('Templates/FooterAdmin'); + } + + /** + * New + * + * @return void + */ + public function new() + { + echo view('Templates/HeaderAdmin'); + echo view('Admin/Groups/New'); + echo view('Templates/FooterAdmin'); + } + + /** + * Create + * + * @return void + */ + public function create() + { + $name = $this->request->getPost('name'); + $definition = $this->request->getPost('definition'); + + if (! $this->aauth->createGroup($name, $definition)) + { + return redirect()->back()->with('errors', $this->aauth->getErrorsArray()); + } + + return redirect()->to('/admin/groups'); + } + + /** + * Edit + * + * @return void + */ + public function edit($groupId) + { + $data['group'] = $this->aauth->getGroup($groupId); + + echo view('Templates/HeaderAdmin'); + echo view('Admin/Groups/Edit', $data); + echo view('Templates/FooterAdmin'); + } + + /** + * Update + * + * @return void + */ + public function update($groupId) + { + $name = $this->request->getPost('name'); + $definition = $this->request->getPost('definition'); + + if (! $this->aauth->updateGroup($groupId, empty($name) ? null : $name, empty($definition) ? null : $definition)) + { + return redirect()->back()->with('errors', $this->aauth->getErrorsArray()); + } + + return redirect()->to('/admin/groups/edit/' . $groupId); + } + + /** + * Show + * + * @return void + */ + public function show($groupId) + { + $data['group'] = $this->aauth->getGroup($groupId); + + echo view('Templates/HeaderAdmin'); + echo view('Admin/Groups/Show', $data); + echo view('Templates/FooterAdmin'); + } + + /** + * Delete + * + * @return void + */ + public function delete($groupId) + { + if (! $this->aauth->getGroup($groupId)) + { + return redirect()->to('/admin/groups'); + } + + $id = $this->request->getPost('id'); + if ($groupId === $id) + { + if ($this->aauth->deleteGroup($groupId)) + { + return redirect()->to('/admin/groups'); + } + } + + $data['group'] = $this->aauth->getGroup($groupId); + + echo view('Templates/HeaderAdmin'); + echo view('Admin/Groups/Delete', $data); + echo view('Templates/FooterAdmin'); + } + +} diff --git a/app/Controllers/Admin/Perms.php b/app/Controllers/Admin/Perms.php new file mode 100644 index 0000000..c94023b --- /dev/null +++ b/app/Controllers/Admin/Perms.php @@ -0,0 +1,164 @@ +aauth = new Aauth(); + $this->request = Services::request(); + helper('form'); + helper('aauth'); + } + + /** + * Index + * + * @return void + */ + public function index() + { + $data = $this->aauth->listPermsPaginated(); + + $data['cssFiles'] = [ + '/assets/css/admin/groups/index.css' + ]; + + echo view('Templates/HeaderAdmin', $data); + echo view('Admin/Perms/Home', $data); + echo view('Templates/FooterAdmin'); + } + + /** + * New + * + * @return void + */ + public function new() + { + echo view('Templates/HeaderAdmin'); + echo view('Admin/Perms/New'); + echo view('Templates/FooterAdmin'); + } + + /** + * Create + * + * @return void + */ + public function create() + { + $name = $this->request->getPost('name'); + $definition = $this->request->getPost('definition'); + + if (! $this->aauth->createPerm($name, $definition)) + { + return redirect()->back()->with('errors', $this->aauth->getErrorsArray()); + } + + return redirect()->to('/admin/groups'); + } + + /** + * Edit + * + * @return void + */ + public function edit($permId) + { + $data['group'] = $this->aauth->getPerm($permId); + + echo view('Templates/HeaderAdmin'); + echo view('Admin/Perms/Edit', $data); + echo view('Templates/FooterAdmin'); + } + + /** + * Update + * + * @return void + */ + public function update($permId) + { + $name = $this->request->getPost('name'); + $definition = $this->request->getPost('definition'); + + if (! $this->aauth->updatePerm($permId, empty($name) ? null : $name, empty($definition) ? null : $definition)) + { + return redirect()->back()->with('errors', $this->aauth->getErrorsArray()); + } + + return redirect()->to('/admin/groups/edit/' . $permId); + } + + /** + * Show + * + * @return void + */ + public function show($permId) + { + $data['group'] = $this->aauth->getPerm($permId); + + echo view('Templates/HeaderAdmin'); + echo view('Admin/Perms/Show', $data); + echo view('Templates/FooterAdmin'); + } + + /** + * Delete + * + * @return void + */ + public function delete($permId) + { + if (! $this->aauth->getPerm($permId)) + { + return redirect()->to('/admin/groups'); + } + + $id = $this->request->getPost('id'); + if ($permId === $id) + { + if ($this->aauth->deletePerm($permId)) + { + return redirect()->to('/admin/groups'); + } + } + + $data['group'] = $this->aauth->getPerm($permId); + + echo view('Templates/HeaderAdmin'); + echo view('Admin/Perms/Delete', $data); + echo view('Templates/FooterAdmin'); + } + +} diff --git a/app/Language/en/Admin.php b/app/Language/en/Admin.php index adef116..7bce5cd 100644 --- a/app/Language/en/Admin.php +++ b/app/Language/en/Admin.php @@ -25,36 +25,74 @@ * @codeCoverageIgnore */ return [ - 'homeHeader' => 'Admin Area', - 'homeText' => 'Welcome to CodeIgniter-Aauth\'s Admin Area', - 'homeBreadcrumbTitle' => 'Home', + 'homeHeader' => 'Admin Area', + 'homeText' => 'Welcome to CodeIgniter-Aauth\'s Admin Area', + 'homeBreadcrumbTitle' => 'Home', - 'breadcrumbCommonNew' => 'New', - 'breadcrumbCommonEdit' => 'Edit', - 'breadcrumbCommonShow' => 'Show', - 'breadcrumbCommonDelete' => 'Delete', + 'breadcrumbCommonNew' => 'New', + 'breadcrumbCommonEdit' => 'Edit', + 'breadcrumbCommonShow' => 'Show', + 'breadcrumbCommonDelete' => 'Delete', - 'usersIndexHeader' => 'Users', - 'usersNewHeader' => 'New user', - 'usersNewSubmit' => 'Create new user', - 'usersEditHeader' => 'Edit user', - 'usersEditSubmit' => 'Update user', - 'usersShowHeader' => 'Show user', - 'usersDeleteHeader' => 'Delete user', - 'usersDeleteSubmit' => 'Delete user', - 'usersBreadcrumbTitle' => 'Users', - 'usersLabelId' => 'Id', - 'usersLabelEmail' => 'Email address', - 'usersLabelUsername' => 'Username', - 'usersLabelEmailCurrent' => 'Current email address', - 'usersLabelUsernameCurrent' => 'Current username', - 'usersLabelPassword' => 'Password', - 'usersLabelBanned' => 'Banned', - 'usersLabelCreatedAt' => 'Created at', - 'usersLabelUpdatedAt' => 'Updated at', - 'usersLabelLastIPAddress' => 'Last IP-Address', - 'usersLabelLastActivity' => 'Last Activity', - 'usersLabelLastLogin' => 'Last Login', - 'usersLinkNew' => 'Create new user', - 'usersLinkBack' => 'Back', + 'usersIndexHeader' => 'Users', + 'usersNewHeader' => 'New user', + 'usersNewSubmit' => 'Create new user', + 'usersEditHeader' => 'Edit user', + 'usersEditSubmit' => 'Update user', + 'usersShowHeader' => 'Show user', + 'usersDeleteHeader' => 'Delete user', + 'usersDeleteSubmit' => 'Delete user', + 'usersBreadcrumbTitle' => 'Users', + 'usersLabelId' => 'Id', + 'usersLabelEmail' => 'Email address', + 'usersLabelUsername' => 'Username', + 'usersLabelEmailCurrent' => 'Current email address', + 'usersLabelUsernameCurrent' => 'Current username', + 'usersLabelPassword' => 'Password', + 'usersLabelBanned' => 'Banned', + 'usersLabelCreatedAt' => 'Created at', + 'usersLabelUpdatedAt' => 'Updated at', + 'usersLabelLastIPAddress' => 'Last IP-Address', + 'usersLabelLastActivity' => 'Last Activity', + 'usersLabelLastLogin' => 'Last Login', + 'usersLinkNew' => 'Create new user', + 'usersLinkBack' => 'Back', + + 'groupsIndexHeader' => 'Groups', + 'groupsNewHeader' => 'New group', + 'groupsNewSubmit' => 'Create new group', + 'groupsEditHeader' => 'Edit group', + 'groupsEditSubmit' => 'Update group', + 'groupsShowHeader' => 'Show group', + 'groupsDeleteHeader' => 'Delete group', + 'groupsDeleteSubmit' => 'Delete group', + 'groupsBreadcrumbTitle' => 'Groups', + 'groupsLabelId' => 'Id', + 'groupsLabelName' => 'Name', + 'groupsLabelDefinition' => 'Definition', + 'groupsLabelNameCurrent' => 'Current Name', + 'groupsLabelDefinitionCurrent' => 'Current Definition', + 'groupsLabelCreatedAt' => 'Created at', + 'groupsLabelUpdatedAt' => 'Updated at', + 'groupsLinkNew' => 'Create new group', + 'groupsLinkBack' => 'Back', + + 'permsIndexHeader' => 'Perms', + 'permsNewHeader' => 'New perm', + 'permsNewSubmit' => 'Create new perm', + 'permsEditHeader' => 'Edit perm', + 'permsEditSubmit' => 'Update perm', + 'permsShowHeader' => 'Show perm', + 'permsDeleteHeader' => 'Delete perm', + 'permsDeleteSubmit' => 'Delete perm', + 'permsBreadcrumbTitle' => 'Perms', + 'permsLabelId' => 'Id', + 'permsLabelName' => 'Name', + 'permsLabelDefinition' => 'Definition', + 'permsLabelNameCurrent' => 'Current Name', + 'permsLabelDefinitionCurrent' => 'Current Definition', + 'permsLabelCreatedAt' => 'Created at', + 'permsLabelUpdatedAt' => 'Updated at', + 'permsLinkNew' => 'Create new perm', + 'permsLinkBack' => 'Back', ]; diff --git a/app/Views/Admin/Groups/Delete.php b/app/Views/Admin/Groups/Delete.php new file mode 100644 index 0000000..aaf404d --- /dev/null +++ b/app/Views/Admin/Groups/Delete.php @@ -0,0 +1,34 @@ + +
+
+ +
+ $group['id']]) ?> +
+
+ +

+
+
+ +

+
+
+ +

+
+
+ + +
diff --git a/app/Views/Admin/Groups/Edit.php b/app/Views/Admin/Groups/Edit.php new file mode 100644 index 0000000..c4c73db --- /dev/null +++ b/app/Views/Admin/Groups/Edit.php @@ -0,0 +1,51 @@ + + +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+
+ +

+
+
+ + +
+
+ +

+
+
+ + +
+
+ + +
diff --git a/app/Views/Admin/Groups/Home.php b/app/Views/Admin/Groups/Home.php new file mode 100644 index 0000000..00de2cf --- /dev/null +++ b/app/Views/Admin/Groups/Home.php @@ -0,0 +1,56 @@ + + +
+ +
+ +
+ +
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+
+
+ +
diff --git a/app/Views/Admin/Groups/New.php b/app/Views/Admin/Groups/New.php new file mode 100644 index 0000000..f3afdcc --- /dev/null +++ b/app/Views/Admin/Groups/New.php @@ -0,0 +1,37 @@ + + +
+ +
+ +
+ +
+
+ +
+ +
+
+ + +
+
+ + +
+
+ + +
diff --git a/app/Views/Admin/Groups/Show.php b/app/Views/Admin/Groups/Show.php new file mode 100644 index 0000000..8e96568 --- /dev/null +++ b/app/Views/Admin/Groups/Show.php @@ -0,0 +1,31 @@ + +
+
+ +
+
+
+ +

+
+
+ +

+
+
+ +

+
+
+ +
diff --git a/app/Views/Admin/Perms/Delete.php b/app/Views/Admin/Perms/Delete.php new file mode 100644 index 0000000..99fc646 --- /dev/null +++ b/app/Views/Admin/Perms/Delete.php @@ -0,0 +1,34 @@ + +
+
+ +
+ $perm['id']]) ?> +
+
+ +

+
+
+ +

+
+
+ +

+
+
+ + +
diff --git a/app/Views/Admin/Perms/Edit.php b/app/Views/Admin/Perms/Edit.php new file mode 100644 index 0000000..b244505 --- /dev/null +++ b/app/Views/Admin/Perms/Edit.php @@ -0,0 +1,51 @@ + + +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+
+ +

+
+
+ + +
+
+ +

+
+
+ + +
+
+ + +
diff --git a/app/Views/Admin/Perms/Home.php b/app/Views/Admin/Perms/Home.php new file mode 100644 index 0000000..83801a0 --- /dev/null +++ b/app/Views/Admin/Perms/Home.php @@ -0,0 +1,56 @@ + + +
+ +
+ +
+ +
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+
+
+ +
diff --git a/app/Views/Admin/Perms/New.php b/app/Views/Admin/Perms/New.php new file mode 100644 index 0000000..8613c31 --- /dev/null +++ b/app/Views/Admin/Perms/New.php @@ -0,0 +1,37 @@ + + +
+ +
+ +
+ +
+
+ +
+ +
+
+ + +
+
+ + +
+
+ + +
diff --git a/app/Views/Admin/Perms/Show.php b/app/Views/Admin/Perms/Show.php new file mode 100644 index 0000000..f17765f --- /dev/null +++ b/app/Views/Admin/Perms/Show.php @@ -0,0 +1,31 @@ + +
+
+ +
+
+
+ +

+
+
+ +

+
+
+ +

+
+
+ +
diff --git a/app/Views/Admin/Users/Delete.php b/app/Views/Admin/Users/Delete.php index 4d5ed02..7782cd9 100644 --- a/app/Views/Admin/Users/Delete.php +++ b/app/Views/Admin/Users/Delete.php @@ -5,7 +5,7 @@ - +
diff --git a/app/Views/Templates/HeaderAdmin.php b/app/Views/Templates/HeaderAdmin.php index be97e8f..183a436 100644 --- a/app/Views/Templates/HeaderAdmin.php +++ b/app/Views/Templates/HeaderAdmin.php @@ -6,15 +6,15 @@ - <? (isset($title) ? $title : '') ?> + <?php (isset($title) ? $title : '') ?> - - + + - - + +