summaryrefslogtreecommitdiff
path: root/public/app/models
diff options
context:
space:
mode:
authorGeorge Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2023-04-27 20:18:01 +0300
committerGeorge Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2023-04-27 20:18:01 +0300
commita2e68fce808dbe6fba320a6232a15380b63157f6 (patch)
treeb6ceaf603b2237c328707c152233304b9a511b9e /public/app/models
parent059e0d95d0c28bc5060e87e146eaf7411f51bf90 (diff)
downloadgyraf1gov-a2e68fce808dbe6fba320a6232a15380b63157f6.tar.gz
gyraf1gov-a2e68fce808dbe6fba320a6232a15380b63157f6.tar.bz2
gyraf1gov-a2e68fce808dbe6fba320a6232a15380b63157f6.zip
structure simplified
Diffstat (limited to 'public/app/models')
-rw-r--r--public/app/models/Access_model.php (renamed from public/app/models/admin/User_model.php)148
-rw-r--r--public/app/models/Cms_model.php (renamed from public/app/models/cms/Course_model.php)6
-rw-r--r--public/app/models/History_model.php (renamed from public/app/models/admin/History_model.php)2
-rw-r--r--public/app/models/admin/Privilege_model.php42
-rw-r--r--public/app/models/cms/Media_model.php36
-rw-r--r--public/app/models/cms/Page_model.php18
-rw-r--r--public/app/models/ideas.md24
-rw-r--r--public/app/models/todo.md50
8 files changed, 105 insertions, 221 deletions
diff --git a/public/app/models/admin/User_model.php b/public/app/models/Access_model.php
index 2885dc1..d5ae19e 100644
--- a/public/app/models/admin/User_model.php
+++ b/public/app/models/Access_model.php
@@ -1,13 +1,16 @@
<?php
-namespace app\models\admin;
+namespace app\models;
use \Registry;
-use app\models\admin\History_model as History;
+use app\models\History_model;
-class User_model
+class Access_model
{
+ ## User methods
+ ## -------------------------------------------------------------------------
+
/** check user (by index key)
*
* @param $indexKey (string) : key for user identification
@@ -133,11 +136,6 @@ class User_model
return [ "success" => false, 'error' => EMPTY_REQUIRED_FIELDS ];
}
-
- // TODO:
- // check if email exists
- // ...
-
// create an activation code
$activation_code = md5($data['email'].time().rand(0, 10000));
@@ -165,7 +163,7 @@ class User_model
self::set_user_role($new_user_id, 5);
// update history
- History::trackUserAccess($new_user_id, TRACK_ACCOUNT, 'Create User Account');
+ History_model::trackUserAccess($new_user_id, TRACK_ACCOUNT, 'Create User Account');
// return success and user id
return [
@@ -176,6 +174,45 @@ class User_model
}
+ /** activate
+ *
+ * check if activation code is valid;
+ * if valid, set account active;
+ *
+ * @param $ticket (hex/MD5): activation code;
+ *
+ */
+ public static function activate($ticket)
+ {
+ $user = Registry::use('database')->query(
+ "SELECT * FROM user WHERE activation = :ticket",
+ [ 'ticket' => $ticket ]
+ )->getFirst();
+
+ // if no user with this activation code, return false
+ if ($user === false) return false;
+
+ // remove activation code from user record
+ Registry::use('database')->runQuery(
+ "UPDATE user
+ SET active = 1, `activation` = NULL
+ WHERE activation = :ticket",
+ [ 'ticket' => $ticket ]
+ );
+
+ // update history
+ History_model::trackUserAccess($user['id'], TRACK_ACCOUNT, 'User Account Activated');
+
+ return true;
+
+ }
+
+
+
+ ## Set permission methods
+ ## -------------------------------------------------------------------------
+
+
/** set_user_privileges
*
* @param $privileges (array)
@@ -209,91 +246,24 @@ class User_model
}
- /** activate
- *
- * check if activation code is valid;
- * if valid, set account active;
- *
- * @param $ticket (hex/MD5): activation code;
+ ## List methods
+ ## -------------------------------------------------------------------------
+
+
+ /** privileges
+ * ---
+ * get all privileges (as a list)
+ * used by cacher; speeds up seveal things
*
+ * @param void
+ * @return privileges (array)
*/
- public static function activate($ticket)
+ public static function privileges()
{
- $user = Registry::use('database')->query(
- "SELECT * FROM user WHERE activation = :ticket",
- [ 'ticket' => $ticket ]
- )->getFirst();
-
- // if no user with this activation code, return false
- if ($user === false) return false;
-
- // remove activation code from user record
- Registry::use('database')->runQuery(
- "UPDATE user
- SET active = 1, `activation` = NULL
- WHERE activation = :ticket",
- [ 'ticket' => $ticket ]
+ return Registry::use('database')->runQuery(
+ "SELECT * FROM privilege",[]
);
-
- // update history
- History::trackUserAccess($user['id'], TRACK_ACCOUNT, 'User Account Activated');
-
- return true;
-
}
}
-
-/* example query getUser (super-array)
---- -- -- - - -
-
-SELECT user.*,
-( -- array (json) of roles granted to user
- SELECT CONCAT('[', GROUP_CONCAT(role.id), ']')
- FROM `role`
- WHERE role.id IN (
- SELECT user_role.role_id
- FROM user_role
- WHERE user_role.user_id = 1
- )
-) AS Roles_json,
-(
- SELECT CONCAT(
- '[',
- GROUP_CONCAT(privilege.id),
- ']'
- )
- FROM privilege
- WHERE privilege.id IN (
- SELECT user_privilege.privilege_id
- FROM user_privilege
- WHERE user_privilege.user_id = 1
- )
-) AS RootPrivileges_json,
-(
- SELECT CONCAT( -- array of array of sub-privileges
- '[',
- GROUP_CONCAT( -- array (json) of subprivileges
- (
- SELECT CONCAT(
- '[',
- GROUP_CONCAT(included_id),
- ']'
- )
- FROM privilege_includes
- WHERE privilege_id = privilege.id
- )
- ),
- ']'
- )
- FROM privilege
- WHERE privilege.id IN (
- SELECT user_privilege.privilege_id
- FROM user_privilege
- WHERE user_id = 1
- )
-) AS SubPrivileges_json
-FROM user
-WHERE id = 1
---- */ \ No newline at end of file
diff --git a/public/app/models/cms/Course_model.php b/public/app/models/Cms_model.php
index 6614993..fad11b8 100644
--- a/public/app/models/cms/Course_model.php
+++ b/public/app/models/Cms_model.php
@@ -1,10 +1,10 @@
<?php
-namespace app\models\cms;
+namespace app\models;
use \Registry;
-class Course_model {
+class Cms_model {
/** COURSES
* -------------------------------------------------------------------------
@@ -143,7 +143,7 @@ class Course_model {
*
* NOTE:
* ---
- * Course_model::all_breadcrumbs returns an indexed super-array;
+ * Cms_model::all_breadcrumbs returns an indexed super-array;
* each array item includes a banch of information: [
* breadcrumb,
* rec: [ id , title ],
diff --git a/public/app/models/admin/History_model.php b/public/app/models/History_model.php
index 04ce630..f50539f 100644
--- a/public/app/models/admin/History_model.php
+++ b/public/app/models/History_model.php
@@ -1,5 +1,5 @@
<?php
-namespace app\models\admin;
+namespace app\models;
use \Registry;
diff --git a/public/app/models/admin/Privilege_model.php b/public/app/models/admin/Privilege_model.php
deleted file mode 100644
index c385484..0000000
--- a/public/app/models/admin/Privilege_model.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-namespace app\models\admin;
-
-use Registry;
-use Render;
-
-
-class Privilege_model {
-
- /** privileges
- * ---
- * get all privileges
- *
- * @param void
- * @return privileges (array)
- */
- public static function privileges()
- {
- return Registry::use('database')->runQuery(
- "SELECT * FROM privilege",[]
- );
- }
-
- /** edit privileges
- * ---
- */
- public static function edit_privileges()
- {
- // TODO: ...
- }
-
-
- /** update course
- * ---
- */
- public static function update_course()
- {
- // TODO: ...
- }
-
-} \ No newline at end of file
diff --git a/public/app/models/cms/Media_model.php b/public/app/models/cms/Media_model.php
deleted file mode 100644
index 6a4a681..0000000
--- a/public/app/models/cms/Media_model.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace app\models\cms;
-
-use \Registry;
-
-
-class Media_model
-{
- public static function serve($type, $id, $ticket)
- {
-
- // get media data
- // [ type =>, rights =>, path => ]
-
- // validate ticket
- // ValidateAccess::for($ticket)
-
- // serve
- // header("Content-type: type");
- // passthru('cat $media_path');
-
-
- return Registry::use('database')->query(
- "SELECT * FROM pages
- WHERE FullFriendlyUrl = :url AND IsActive = 1",
- [ ':url' => $url ]
- )->getFirst();
- }
-
-}
-
-
-
-// check:
-// https://stackoverflow.com/questions/1353850/serve-image-with-php-script-vs-direct-loading-an-image \ No newline at end of file
diff --git a/public/app/models/cms/Page_model.php b/public/app/models/cms/Page_model.php
deleted file mode 100644
index fda5fb1..0000000
--- a/public/app/models/cms/Page_model.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace app\models\cms;
-
-use \Registry;
-
-class Page_model
-{
- public static function fromUrl($url)
- {
- return Registry::use('database')->query(
- "SELECT * FROM pages
- WHERE FullFriendlyUrl = :url AND IsActive = 1",
- [ ':url' => $url ]
- )->getFirst();
- }
-
-} \ No newline at end of file
diff --git a/public/app/models/ideas.md b/public/app/models/ideas.md
new file mode 100644
index 0000000..300612d
--- /dev/null
+++ b/public/app/models/ideas.md
@@ -0,0 +1,24 @@
+# interesting projects
+
+projects for brainstorming
+
+## php ORM projects
+
+* [riverside\php-orm](https://github.com/riverside/php-orm) seems the lightest and most promissing
+
+* https://github.com/mareimorsy/DB
+
+* https://propelorm.org/
+
+* https://redbeanphp.com/index.php?p=/download
+
+* you can find more in a [related github topic](https://github.com/topics/php-orm)
+
+
+Thoughts:
+create a DatabaseModel class (??) based on the riverside\php-orm then use it in anom framerok
+
+
+## php micro-framework
+
+* [riverside\php-express](https://github.com/riverside/php-express) seems quite interesting
diff --git a/public/app/models/todo.md b/public/app/models/todo.md
index defd21e..ec027a6 100644
--- a/public/app/models/todo.md
+++ b/public/app/models/todo.md
@@ -1,55 +1,41 @@
-
-
-Privilege
----
-
-Privilege::list_of_privileges( privilege_id )
-
-Privilege::privileges_tree()
-
-
-
-
-
-User
+Rearange
---
-User::get_privileges
+-- #1 --
+[ok] app\controllers\cms\Course -> [*] app\controllers\Course
-User::has_privilege( privilege_id )
+[ok] app\controllers\admin\Users_admin -> [delete]
+[ok] app\controllers\Admin -> [delete]
-User::reset_password()
- -> create otp
- -> send email
+[ok] app\controllers\admin\Course_admin -> [*] app\controllers\Course_admin
+[ok] app\models\admin\User_model -> [*] app\models\User_model
-User::set_privilege( privilege_id )
+[ok] app\models\admin\Privilege_model -> [merge_to] -> [**] app\models\User_model
+[ok] app\models\admin\History_model -> [*] app\models\History_model
-User::track_action()
- -> user_id
- -> action : Contoller::method(args)
- -> timestamp
+[ok] app\models\cms\Page_model -> [delete]
+[ok] app\models\cms\Media_model -> [delete]
+[ok] app\models\cms\Course_model -> [*] app\models\Course_model
-Lesson:
----
-Lesson::create_lesson( POST )
+[*] = move
-Lesson::get_lesson( lesson_id )
+-- #2 --
+[ok] app\controllers\Course -> [rename] app\controllers\Cms
-Course
----
+[ok] app\controllers\Course_admin -> [rename] app\controllers\CmsAdmin
-Course::create_course( POST )
+[ok] app\models\Course_model -> [rename] app\models\Cms_model
-Course::courses_tree()
+[ok] app\extends\Send_mail -> [rename] SendMail_service