]> git.ipfire.org Git - pbs.git/commitdiff
users: Move any extra permissions into the users table
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 6 Oct 2022 10:10:57 +0000 (10:10 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 6 Oct 2022 10:10:57 +0000 (10:10 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/users.py
src/database.sql

index d56dbfc92ceb2396c8c4546977c9456614da9d3c..33dbbb1b262e7738576564e28f4534fe90624593 100644 (file)
@@ -68,9 +68,6 @@ class Users(base.Object):
                user = self._get_user("INSERT INTO users(name, realname) \
                        VALUES(%s, %s) RETURNING *", name, realname)
 
-               # Create row in permissions table.
-               self.db.execute("INSERT INTO users_permissions(user_id) VALUES(%s)", user.id)
-
                log.debug("Created user %s" % user.name)
 
                return user
@@ -330,9 +327,15 @@ class User(base.DataObject):
                """
                return "https://people.ipfire.org/users/%s.jpg?size=%s" % (self.name, size)
 
-       @lazy_property
-       def perms(self):
-               return self.db.get("SELECT * FROM users_permissions WHERE user_id = %s", self.id)
+       # Permissions
+
+       def get_perms(self):
+               return self.data.perms
+
+       def set_perms(self, perms):
+               self._set_attribute("perms", perms or [])
+
+       perms = property(get_perms, set_perms)
 
        def has_perm(self, user):
                """
index d5c4646146252a1db73210dcd5f5ce0654f622cf..3c6123dc7b9bf45e85ace107ee55e0d70e0823b3 100644 (file)
@@ -1347,7 +1347,8 @@ CREATE TABLE public.users (
     deleted boolean DEFAULT false NOT NULL,
     registered_at timestamp without time zone DEFAULT now() NOT NULL,
     admin boolean DEFAULT false NOT NULL,
-    quota bigint
+    quota bigint,
+    perms text[] DEFAULT ARRAY[]::text[] NOT NULL
 );
 
 
@@ -1411,43 +1412,6 @@ ALTER TABLE public.users_id_seq OWNER TO pakfire;
 ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id;
 
 
---
--- Name: users_permissions; Type: TABLE; Schema: public; Owner: pakfire
---
-
-CREATE TABLE public.users_permissions (
-    id integer NOT NULL,
-    user_id integer NOT NULL,
-    create_scratch_builds boolean DEFAULT false NOT NULL,
-    maintain_builders boolean DEFAULT false NOT NULL,
-    manage_mirrors boolean DEFAULT false NOT NULL,
-    vote boolean DEFAULT false NOT NULL
-);
-
-
-ALTER TABLE public.users_permissions OWNER TO pakfire;
-
---
--- Name: users_permissions_id_seq; Type: SEQUENCE; Schema: public; Owner: pakfire
---
-
-CREATE SEQUENCE public.users_permissions_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.users_permissions_id_seq OWNER TO pakfire;
-
---
--- Name: users_permissions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pakfire
---
-
-ALTER SEQUENCE public.users_permissions_id_seq OWNED BY public.users_permissions.id;
-
-
 --
 -- Name: builders id; Type: DEFAULT; Schema: public; Owner: pakfire
 --
@@ -1644,13 +1608,6 @@ ALTER TABLE ONLY public.users ALTER COLUMN id SET DEFAULT nextval('public.users_
 ALTER TABLE ONLY public.users_emails ALTER COLUMN id SET DEFAULT nextval('public.users_emails_id_seq'::regclass);
 
 
---
--- Name: users_permissions id; Type: DEFAULT; Schema: public; Owner: pakfire
---
-
-ALTER TABLE ONLY public.users_permissions ALTER COLUMN id SET DEFAULT nextval('public.users_permissions_id_seq'::regclass);
-
-
 --
 -- Name: builds builds_pkey; Type: CONSTRAINT; Schema: public; Owner: pakfire
 --
@@ -1819,14 +1776,6 @@ ALTER TABLE ONLY public.users_emails
     ADD CONSTRAINT idx_2198256_primary PRIMARY KEY (id);
 
 
---
--- Name: users_permissions idx_2198263_primary; Type: CONSTRAINT; Schema: public; Owner: pakfire
---
-
-ALTER TABLE ONLY public.users_permissions
-    ADD CONSTRAINT idx_2198263_primary PRIMARY KEY (id);
-
-
 --
 -- Name: messages idx_2198274_primary; Type: CONSTRAINT; Schema: public; Owner: pakfire
 --
@@ -2637,14 +2586,6 @@ ALTER TABLE ONLY public.users_emails
     ADD CONSTRAINT users_emails_user_id FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;
 
 
---
--- Name: users_permissions users_permissions_user_id; Type: FK CONSTRAINT; Schema: public; Owner: pakfire
---
-
-ALTER TABLE ONLY public.users_permissions
-    ADD CONSTRAINT users_permissions_user_id FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;
-
-
 --
 -- PostgreSQL database dump complete
 --