def applySettings(self, data):
    "Saves user's preferences"
    context = HttpContext.current()
    activeUser = context.original_user
    for key in data:
        activeUser.settings.value[key] = data[key]
    txn = db.get_transaction()
    activeUser.update(txn)
    return True
def create(self, data):
    "Creates a new item"
    context = HttpContext.current()
    oNewItem = misc.get_rto_by_name(data.pop('CC'))()

    # get user role
    iUserRole = permsresolver.get_access(self, context.user)
    if data.has_key('__rolesinherited') and \
            iUserRole == permsresolver.COORDINATOR:
        oNewItem.inheritRoles = data.pop('__rolesinherited')
        if not oNewItem.inheritRoles:
            acl = data.pop('__acl')
            if acl:
                security = {}
                for descriptor in acl:
                    security[descriptor['id']] = int(descriptor['role'])
                oNewItem.security = security

    # set props
    for prop in data:
        oAttr = getattr(oNewItem, prop)
        if isinstance(oAttr, datatypes.File):
            if data[prop]['tempfile']:
                oAttr.filename = data[prop]['filename']
                sPath = context.server.temp_folder + '/' + data[prop]['tempfile']
                oAttr.loadFromFile(sPath)
                os.remove(sPath)
        elif isinstance(oAttr, datatypes.Date):
            oAttr.value = data[prop].value
        elif isinstance(oAttr, datatypes.Integer):
            oAttr.value = int(data[prop])
        else:
            oAttr.value = data[prop]
            
    txn = db.get_transaction()
    oNewItem.append_to(self, txn)
    return oNewItem.id
 def set_userid(self, value):
     self.__userid = value
     trans = db.get_transaction()
     self.update(trans)
 def set_value(self, name, value):
     self.__data[name] = value
     trans = db.get_transaction()
     self.update(trans)
def delete(self):
    "Removes the deleted item"
    txn = db.get_transaction()
    self.delete(txn)
    return True
def restoreTo(self, targetid):
    "Restores the deleted item to the designated target container"
    txn = db.get_transaction()
    self.restore_to(targetid, txn)
    return True
def restore(self):
    "Restores the deleted item to its orginal location"
    txn = db.get_transaction()
    self.restore(txn)
    return True
def resetPassword(self, new_password):
    "Resets the user's password"
    txn = db.get_transaction()
    self.password.value = new_password
    self.update(txn)
    return True
 def revive_session(self, session):
     trans = db.get_transaction()
     session.update(trans)
 def remove_session(self, sessionid):
     trans = db.get_transaction()
     session = db._db.get_item(sessionid, trans)
     session.delete(trans)
 def create_session(self, userid):
     trans = db.get_transaction()
     session = schema.Session(userid, {})
     session.append_to('_sessions', trans)
     return session