summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorMalf Furious <m@lfurio.us>2017-02-07 00:20:03 -0500
committerMalf Furious <m@lfurio.us>2017-02-07 00:20:03 -0500
commitf8db4aae02465dabaf7907f5e821414eeeea14bf (patch)
tree8f81bfc318c59446454e7aa3b2dfc99afb6efecd /app
parent861c98387001f99fe0e178d8202d2c3ec40538f0 (diff)
downloadscrott-f8db4aae02465dabaf7907f5e821414eeeea14bf.tar.gz
scrott-f8db4aae02465dabaf7907f5e821414eeeea14bf.zip
Add function expectType() to table class
protected function exceptType added for use by subclasses to assert that the database object loaded is the correct type and to protect against cases like EG: passing the GUID for a group to new user(...); If a problem is detected, throw an exception.
Diffstat (limited to 'app')
-rw-r--r--app/class/table.class.php15
-rw-r--r--app/class/user.class.php1
2 files changed, 16 insertions, 0 deletions
diff --git a/app/class/table.class.php b/app/class/table.class.php
index 2759176..45be8c5 100644
--- a/app/class/table.class.php
+++ b/app/class/table.class.php
@@ -201,6 +201,21 @@ abstract class table
while (self::isGUID($guid));
return $guid;
}
+
+ /*
+ * Assert that this object is of the expected type in the database.
+ * Throw an exception if a type mismatch exists. Check will only
+ * be performed if guid and objtype are set on this object.
+ */
+ protected function expectType(string $objtype) : void
+ {
+ if (isset($this->guid) && isset($this->objtype))
+ {
+ if ($this->objtype != $objtype)
+ throw new Exception("Invalid object allocation. " . $this->guid . " is a " .
+ $this->objtype . ", not a " . $objtype . ".");
+ }
+ }
}
?>
diff --git a/app/class/user.class.php b/app/class/user.class.php
index 45fa5a5..7defa8f 100644
--- a/app/class/user.class.php
+++ b/app/class/user.class.php
@@ -38,6 +38,7 @@ class user extends agent
);
parent::__construct($guid);
+ $this->expectType("user");
}
/*