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)