예제 #1
0
파일: test_users.py 프로젝트: masom/Puck
 def testAdd(self):
     users = Users()
     before_count = len(users.all())
     self.assertTrue(users.add(users.new(), persist=False))
     after_count = len(users.all())
     self.assertGreater(after_count, before_count)
     self.assertEqual(before_count + 1, after_count)
예제 #2
0
파일: test_users.py 프로젝트: masom/Puck
    def testInit(self):
        users = Users()
        self.assertIsInstance(users, ModelCollection)
        self.assertGreater(users._items, 0)
        self.assertIsInstance(users.all(), list)

        for i in users.all():
            self.assertIsInstance(i, User)
예제 #3
0
class User(Controller):
    _users = None

    def __init__(self):
        super(User, self).__init__()
        self._users = Users()

    def get(self, id):
        self._permissions.signed()
        data = self._users.get(id)
        if "password" in data:
            del data["password"]
        return data

    def add(self, data):
        self._permissions.signed()
        return self._users.add(data)

    def edit(self, id, data):
        self._permissions.signed()
        return self._users.edit(id, data)

    def delete(self, id):
        self._permissions.signed()
        return self._users.delete(id)

    def all(self, filter):
        self._permissions.signed()
        data = self._users.all(filter)
        for item in data:
            if "password" in item:
                del item["password"]
        return data

    def current(self):
        return self._users.check(session.get("email"), session.get("password"))

    def signin(self, data):
        user = self._users.check(data.get("email"), data.get("password"))
        if "email" in user and "password" in user:
            session["email"] = user["email"]
            session["password"] = user["password"]
        return self.current()

    def signout(self):
        session.pop('email', None)
        session.pop('password', None)
        return self.current()