From: Michael Tremer Date: Thu, 6 Oct 2022 10:10:57 +0000 (+0000) Subject: users: Move any extra permissions into the users table X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=09d78b55d92f09712a964ee4c4e4ab7d94dab0ca;p=pbs.git users: Move any extra permissions into the users table Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/users.py b/src/buildservice/users.py index d56dbfc9..33dbbb1b 100644 --- a/src/buildservice/users.py +++ b/src/buildservice/users.py @@ -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): """ diff --git a/src/database.sql b/src/database.sql index d5c46461..3c6123dc 100644 --- a/src/database.sql +++ b/src/database.sql @@ -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 --