diff options
author | M <m@lfurio.us> | 2015-11-18 13:15:45 -0500 |
---|---|---|
committer | M <m@lfurio.us> | 2015-11-18 13:15:45 -0500 |
commit | 890edc0f3f847ec2ef75bc260aff60a11f4cbeb9 (patch) | |
tree | 51c1169a9fd68d247c89776e9ef176182eefce65 | |
parent | ee5cc69977d13d2183758ff855c8365cfa68dc19 (diff) | |
download | scrott-890edc0f3f847ec2ef75bc260aff60a11f4cbeb9.tar.gz scrott-890edc0f3f847ec2ef75bc260aff60a11f4cbeb9.zip |
+ Defined schema for backend users table
! Devised an initial concept for Scrott object permissions system
-rw-r--r-- | schema.sql | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/schema.sql b/schema.sql new file mode 100644 index 0000000..d586c35 --- /dev/null +++ b/schema.sql @@ -0,0 +1,63 @@ +/* SCROTT - Core System Data Structures + * ------------------------------------ + * SQL Database Schema for backend + */ + +CREATE DATABASE IF NOT EXISTS `db_scrott`; +USE `db_scrott`; + +/* Description of SCROTT object permissions system + * ----------------------------------------------- + * Every object has an owner, zero or more additional members, and then there is the general + * public. + * + * OWNER = user OR group + * MEMBER = user + * OWNER MEMBERS OTHERS + * Permissions are: ------------------------------------------------ + * 1. Access object GRANTED GRANTED MB #6 + * 2. Modify object GRANTED MB #0 DENIED + * 3. Modify members GRANTED MB #1 DENIED + * 4. Modify permissions GRANTED DENIED DENIED + * 5. Access sub-objects GRANTED MB #2 MB #7 + * 6. Create sub-objects GRANTED MB #3 MB #8 + * 7. Modify sub-objects GRANTED MB #4 DENIED + * 8. Modify sub-objects' members GRANTED MB #5 DENIED + * 9. Modify sub-objects' permissions GRANTED DENIED DENIED + * + * 012345678 + * EG: 001111000 = 120 --implies--> that members may access,create,and + * fully modify sub-objects. All other + * options are DENIED. This mask value + * of 120 is a recommended starting point. + * + * Permissions can be overridden down-stream, but permissions will cascade otherwise. + */ + +DROP TABLE IF EXISTS `user`; +CREATE TABLE `user` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `guid` varchar(10) NOT NULL, + `owner` varchar(10) NOT NULL, + `perms` int(10) unsigned NOT NULL, + `name` varchar(50) NOT NULL, + `alias` varchar(50) DEFAULT NULL, + `key` varchar(64) NOT NULL, + `salt` varchar(64) NOT NULL, + + PRIMARY KEY (`id`) +); + + + + + + +DROP TABLE IF EXISTS `group`; +CREATE TABLE `group` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `guid` varchar(10) NOT NULL, + `owner` varchar(10) NOT NULL, + `name` varchar(50) NOT NULL, + /* TODO -- wip */ + /* TODO -- remember members table */ |