Package pulp :: Package server :: Package api :: Module user
[hide private]
[frames] | no frames]

Source Code for Module pulp.server.api.user

 1  #!/usr/bin/python 
 2  # 
 3  # Copyright (c) 2010 Red Hat, Inc. 
 4  # 
 5  # This software is licensed to you under the GNU General Public License, 
 6  # version 2 (GPLv2). There is NO WARRANTY for this software, express or 
 7  # implied, including the implied warranties of MERCHANTABILITY or FITNESS 
 8  # FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 
 9  # along with this software; if not, see 
10  # http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. 
11  # 
12  # Red Hat trademarks are not licensed under GPLv2. No permission is 
13  # granted to use or replicate Red Hat trademarks that are incorporated 
14  # in this software or its documentation. 
15   
16  import logging 
17  import uuid 
18   
19  from pulp.server.api.base import BaseApi 
20  from pulp.server.auditing import audit 
21  from pulp.server import config 
22  from pulp.server.db import model 
23  from pulp.server.db.connection import get_object_db 
24  import pulp.server.auth.password_util as password_util 
25   
26  log = logging.getLogger(__name__) 
27  user_fields = model.User(None, None, None, None).keys() 
28 29 30 -class UserApi(BaseApi):
31
32 - def __init__(self):
33 BaseApi.__init__(self) 34 self.default_login = config.config.get('server', 'default_login') 35 self._ensure_default_admin()
36
37 - def _getcollection(self):
38 return get_object_db('users', 39 self._unique_indexes, 40 self._indexes)
41
42 - def _ensure_default_admin(self):
43 admin = self.user(self.default_login) 44 if (admin is None): 45 default_password = config.config.get('server', 'default_password') 46 self.create(self.default_login, password=default_password)
47 48 @audit(params=['login'])
49 - def create(self, login, password=None, name=None, id=None):
50 """ 51 Create a new User object and return it 52 """ 53 if id is None: 54 id = str(uuid.uuid4()) 55 hashed_password = None 56 if (password is not None): 57 hashed_password = password_util.hash_password(password) 58 user = model.User(login, id, hashed_password, name) 59 self.insert(user) 60 return user
61
62 - def users(self, spec=None, fields=None):
63 """ 64 List all users. 65 """ 66 users = list(self.objectdb.find(spec=spec, fields=fields)) 67 return users
68
69 - def user(self, login, fields=None):
70 """ 71 Return a single User object 72 """ 73 users = self.users({'login': login}, fields) 74 if not users: 75 return None 76 return users[0]
77 78 @audit()
79 - def clean(self):
80 """ 81 Delete all the Users in the database except the default admin user. default 82 user can not be deleted 83 """ 84 self.objectdb.remove({'login': {'$ne': self.default_login}}, safe=True)
85