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
"""
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):
"""
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
);
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
--
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
--
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
--
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
--