blob: d586c355c28d349d9a44c20667235a4d8920044c (
plain) (
tree)
|
|
/* 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 */
|