diff --git a/database.sql b/database.sql index b8952fb808a3de9862e4914c237c18e63fbfcc56..ce639ead5d29a0ea4f9f70f17632d0f6d4eb386f 100644 --- a/database.sql +++ b/database.sql @@ -160,6 +160,16 @@ CREATE TABLE games ( SELECT pg_catalog.setval(pg_catalog.pg_get_serial_sequence('games', 'id'), 5, true); +-- +-- Name: groups; Type: TABLE; Schema: public; Owner: dez; Tablespace: +-- + +CREATE TABLE groups ( + groupname character varying(20) NOT NULL, + description text +); + + -- -- Name: menu; Type: TABLE; Schema: public; Owner: dez; Tablespace: -- @@ -329,12 +339,22 @@ CREATE TABLE static ( SELECT pg_catalog.setval(pg_catalog.pg_get_serial_sequence('static', 'id'), 55, true); +-- +-- Name: usergroup; Type: TABLE; Schema: public; Owner: dez; Tablespace: +-- + +CREATE TABLE usergroup ( + username character varying(20), + groupname character varying(20) +); + + -- -- Name: users; Type: TABLE; Schema: public; Owner: dez; Tablespace: -- CREATE TABLE users ( - username text NOT NULL, + username character varying(20) NOT NULL, realname text, "password" text ); @@ -401,6 +421,16 @@ COPY games (id, name, connect) FROM stdin; \. +-- +-- Data for Name: groups; Type: TABLE DATA; Schema: public; Owner: dez +-- + +COPY groups (groupname, description) FROM stdin; +admin Administrator +editor Content Editor +\. + + -- -- Data for Name: menu; Type: TABLE DATA; Schema: public; Owner: dez -- @@ -535,7 +565,7 @@ COPY redirect (id, from_uri, to_uri) FROM stdin; -- COPY "session" (hash, username, "time", data, ip) FROM stdin; -f0c1ec724757a75c5b4b8c90e78d0eca dez 2007-11-27 16:59:39 s:0:""; 192.168.1.20 +f0c1ec724757a75c5b4b8c90e78d0eca dez 2007-11-27 18:17:02 s:0:""; 192.168.1.20 \. @@ -555,11 +585,21 @@ COPY static (id, path, summary, editor, pageorder) FROM stdin; \. +-- +-- Data for Name: usergroup; Type: TABLE DATA; Schema: public; Owner: dez +-- + +COPY usergroup (username, groupname) FROM stdin; +dez admin +\. + + -- -- Data for Name: users; Type: TABLE DATA; Schema: public; Owner: dez -- COPY users (username, realname, "password") FROM stdin; +dez Denis Walker $1$nfV.LL7A$fIgekLFUJzxMqvXEcsgpb. \. @@ -595,6 +635,14 @@ ALTER TABLE ONLY books ADD CONSTRAINT books_pkey PRIMARY KEY (id); +-- +-- Name: groups_pkey; Type: CONSTRAINT; Schema: public; Owner: dez; Tablespace: +-- + +ALTER TABLE ONLY groups + ADD CONSTRAINT groups_pkey PRIMARY KEY (groupname); + + -- -- Name: menu_pkey; Type: CONSTRAINT; Schema: public; Owner: dez; Tablespace: -- @@ -643,6 +691,22 @@ ALTER TABLE ONLY menu ADD CONSTRAINT menu_heading_fkey FOREIGN KEY (parent) REFERENCES menu(id); +-- +-- Name: usergroup_groupname_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dez +-- + +ALTER TABLE ONLY usergroup + ADD CONSTRAINT usergroup_groupname_fkey FOREIGN KEY (groupname) REFERENCES groups(groupname); + + +-- +-- Name: usergroup_username_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dez +-- + +ALTER TABLE ONLY usergroup + ADD CONSTRAINT usergroup_username_fkey FOREIGN KEY (username) REFERENCES users(username); + + -- -- Name: public; Type: ACL; Schema: -; Owner: postgres -- @@ -759,6 +823,16 @@ GRANT ALL ON TABLE games_id_seq TO dez; GRANT ALL ON TABLE games_id_seq TO apache; +-- +-- Name: groups; Type: ACL; Schema: public; Owner: dez +-- + +REVOKE ALL ON TABLE groups FROM PUBLIC; +REVOKE ALL ON TABLE groups FROM dez; +GRANT ALL ON TABLE groups TO dez; +GRANT ALL ON TABLE groups TO apache; + + -- -- Name: menu; Type: ACL; Schema: public; Owner: dez -- @@ -927,6 +1001,16 @@ GRANT ALL ON TABLE static_id_seq TO dez; GRANT ALL ON TABLE static_id_seq TO apache; +-- +-- Name: usergroup; Type: ACL; Schema: public; Owner: dez +-- + +REVOKE ALL ON TABLE usergroup FROM PUBLIC; +REVOKE ALL ON TABLE usergroup FROM dez; +GRANT ALL ON TABLE usergroup TO dez; +GRANT ALL ON TABLE usergroup TO apache; + + -- -- Name: users; Type: ACL; Schema: public; Owner: dez -- diff --git a/lib/session.php b/lib/session.php index 0974d513bc475a9abe84e72abed96bd1e3caf01f..ad979651f616c35ff2b9c2d65611ff23f10fe9e1 100644 --- a/lib/session.php +++ b/lib/session.php @@ -180,15 +180,22 @@ protected $datahash=''; // hash of data field { global $DB; - $info = $DB->GetArray("select * from users where username=?", $user); + $info = $DB->GetRow("select * from users where username=?", $user); if (empty($info)) { $this->errormsg="Username or password Incorrect"; return FALSE; } - $this->fullname = $info[0]['realname']; -// $this->groups = $info['grouplist']; + $this->fullname = $info['realname']; + + $groups = $DB->GetCol("select groupname from usergroup where username=?", $user); + + foreach ($groups as $groupitem) { + $grouplist[$groupitem] = $groupitem; + } + + $this->groups = $grouplist; } protected function check_pass($user, $pass)