return res.count
- async def create(self, name, realname=None):
+ def create(self, name, realname=None):
# XXX check if username has the correct name
# Check if name is already taken
if user:
raise ValueError("Username %s already taken" % name)
- # Generate a new key for this user
- key = await self.backend.keys.generate(name)
-
# Create new user
- user = self._get_user("INSERT INTO users(name, realname, key_id) \
- VALUES(%s, %s, %s) RETURNING *", name, realname, key)
+ user = self._get_user("INSERT INTO users(name, realname) \
+ VALUES(%s, %s) RETURNING *", name, realname)
log.debug("Created user %s" % user.name)
return user
- async def create_from_ldap(self, name):
+ def create_from_ldap(self, name):
log.debug("Creating user %s from LDAP" % name)
# Get required attributes from LDAP
assert dn
# Create regular user
- user = await self.create(name, realname=attr["cn"][0])
+ user = self.create(name, realname=attr["cn"][0])
# Add all email addresses and activate them
for email in attr["mail"]:
LEFT JOIN users_emails ON users.id = users_emails.user_id \
WHERE users_emails.email = %s", email)
- async def find(self, username):
+ def find(self, username):
# Search for a user object
user = self.get_by_name(username)
# If not user exists, yet, we can import it from LDAP
if not user:
- user = await self.create_from_ldap(username)
+ user = self.create_from_ldap(username)
# If we found a user which has been deleted, we won't return it
if user and user.deleted:
return list(sessions)
- # Key Management
-
- @lazy_property
- def key(self):
- if self.data.key_id:
- return self.backend.keys.get_by_id(self.data.key_id)
-
# Quota
def get_quota(self):
registered_at timestamp without time zone DEFAULT now() NOT NULL,
admin boolean DEFAULT false NOT NULL,
quota bigint,
- perms text[] DEFAULT ARRAY[]::text[] NOT NULL,
- key_id integer NOT NULL
+ perms text[] DEFAULT ARRAY[]::text[] NOT NULL
);
ADD CONSTRAINT users_emails_user_id FOREIGN KEY (user_id) REFERENCES public.users(id) ON DELETE CASCADE;
---
--- Name: users users_key_id; Type: FK CONSTRAINT; Schema: public; Owner: pakfire
---
-
-ALTER TABLE ONLY public.users
- ADD CONSTRAINT users_key_id FOREIGN KEY (key_id) REFERENCES public.keys(id);
-
-
--
-- PostgreSQL database dump complete
--
class LoginHandler(KerberosAuthMixin, base.BaseHandler):
- async def get(self):
+ def get(self):
username = self.get_authenticated_user()
if not username:
# Ask to authenticate
with self.db.transaction():
# Otherwise fetch the authenticated user
- user = await self.backend.users.find(username)
+ user = self.backend.users.find(username)
if not user:
raise tornado.web.HTTPError(500, "Could not find user %s" % username)