Beispiel #1
0
def create_public_workspace(registry=None):
    project_name = PUBLIC_PROJECT_NAME
    username = PUBLIC_PROJECT_USERNAME
    project_desc = "%s description" % project_name
    user_public_email = "%s@internal" % username
    # imports here for circular import references
    from apex.models import create_user, AuthUser
    from mobyle2.core.models.user import User
    import transaction

    ausr = AuthUser.get_by_login(username)
    modified = False
    if ausr is None:
        kwargs = {"email": user_public_email, "username": username, "login": username}
        if registry:
            kwargs["registry"] = registry
        ausr = create_user(**kwargs)
    else:
        ausr.username = username
        ausr.email = user_public_email
        ausr.login = username
        modified = True
    # running mobyle2 __init__ recreate default project if deleted
    # only after we are sure user is created
    usr = User.by_id(ausr.id)
    if modified:
        transaction.commit()
def user_deleted(event):
    request = event.request
    usr = event.user
    # delete user projects and associated acls.
    for p in User.by_id(usr.id).projects[:]:
        try:
            res = []
            res.extend(ProjectGroupRole.by_resource(p))
            res.extend(ProjectUserRole.by_resource(p))
            res.append(p)
            modified = False
            for i in res:
                modified = True
                session.delete(i)
            if modified:
                session.commit()
        except Exception, e:
            error = 'Default project for %s cannot be deleted' % usr.username
            message = '%s' % e
            if message: error += ' : %s' % message
            logging.getLogger('mobyle2.delete_user').error(error)