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)