Ejemplo n.º 1
0
    def test_blog_config_recovery_accessible(self):
        with transaction.atomic():
            with reversion.create_revision():
                new_conf = NewsBlogConfig(
                    namespace='test_revocery_admin_url', paginate_by=15)
                new_conf.save()
        new_config_version = reversion.get_for_object(new_conf)[0]
        new_config_pk = new_conf.pk
        self.assertEqual(NewsBlogConfig.objects.filter(
            pk=new_config_pk).count(), 1)
        new_conf.delete()
        self.assertEqual(NewsBlogConfig.objects.filter(
            pk=new_config_pk).count(), 0)

        # check that there is a a way to access recovery view
        obj = new_config_version.object_version.object
        opts = obj._meta
        url = reverse(
            'admin:{0}_{1}_{2}'.format(
                opts.app_label,
                obj._meta.model_name,
                'recover'),
            args=[new_config_version.pk])
        # ust in case check the length, but at this step either a
        # NoReverseMatch should occur or other error,
        # if no exception is raised, it is a good sign
        self.assertGreater(len(url), 4)
Ejemplo n.º 2
0
    def test_blog_config_recovery_accessible(self):
        with transaction.atomic():
            with create_revision():
                new_conf = NewsBlogConfig(
                    namespace='test_revocery_admin_url', paginate_by=15)
                new_conf.save()
        new_config_version = (default_revision_manager
                              .get_for_object(new_conf)[0])
        new_config_pk = new_conf.pk
        self.assertEqual(NewsBlogConfig.objects.filter(
            pk=new_config_pk).count(), 1)
        new_conf.delete()
        self.assertEqual(NewsBlogConfig.objects.filter(
            pk=new_config_pk).count(), 0)

        # check that there is a a way to access recovery view
        obj = new_config_version.object_version.object
        opts = obj._meta
        url = reverse(
            'admin:{0}_{1}_{2}'.format(
                opts.app_label,
                obj._meta.model_name,
                'recover'),
            args=[new_config_version.pk])
        # ust in case check the length, but at this step either a
        # NoReverseMatch should occur or other error,
        # if no exception is raised, it is a good sign
        self.assertGreater(len(url), 4)
Ejemplo n.º 3
0
def creausuario(sender,user,request,**kwargs):
	if user.is_superuser == False:
		#Activar idioma
		activate('en')
		#Lista de permisos
		permisos=['Can add article','Can view article','Can change article','Can delete article','Can add cms plugin','Can view cms plugin','Can change cms plugin','Can delete cms plugin','Can add placeholder','Can view placeholder','Can change placeholder','Can delete placeholder','Can use Structure mode','Can add placeholder reference','Can change placeholder reference','Can add content type','Can change content type','Can delete content type','Can view content type']			#Al usuario que se está registrando se le añaden los permisos, y se guarda
		usuario=User.objects.get(username=user.username)
		for p in permisos:
			per=Permission.objects.get(name=str(p))
			usuario.user_permissions.add(per)
		usuario.save()
			#Crearmos la Userpage, el blog para el usuario y la página del usuario, luego
		#asignaremos permisos y finalmente publicaremos la página.
		try:
			Page.objects.get(created_by=usuario)
		except Page.DoesNotExist:
			#Crear UserPage
			api.create_page_user(created_by=usuario,user=usuario,can_add_page=True)
			#Crear Blog
			blog=NewsBlogConfig()
			blog.app_title=usuario.username
			blog.namespace=usuario.username
			blog.save()
			#Crear pagina del usuario
			pagina=api.create_page(title=usuario.username,language='en',template=TEMPLATE_INHERITANCE_MAGIC,parent=None,created_by=usuario,apphook='NewsBlogApp',apphook_namespace=usuario.username) 
			#Permisos de usuario
			api.assign_user_to_page(pagina,usuario,can_add=True,can_change=True,can_delete=True)
			pagina.publish('en')
			pagina.save()
Ejemplo n.º 4
0
def creasitios(sender, user, request, **kwargs):
    #Comprobamos que el usuario que se conecta no es el administrador, para evitar que se dispare el script en tal caso
    if user.username != "Administracion":
        #Indicamos que queremos utilizar el idioma español en la creacion
        activate('es')
        #Probamos a comprobar si ese usuario tiene una pagina o no
        try:
            Page.objects.get(created_by=user.username)
        #Si no la tiene pasamos a asignarle los permisos al usuario y crearle la página, ya que damos por supuesto que dicho usuario no existia
        except Page.DoesNotExist:
            #Indicamos la lista de permisos
            permisos = [
                'Can add boostrap3 panel body plugin',
                'Can change boostrap3 panel body plugin',
                'Can add boostrap3 panel plugin',
                'Can change boostrap3 panel plugin', 'Can add article',
                'Can change article', 'Can delete article',
                'Can add cms plugin', 'Can change cms plugin',
                'Can delete cms plugin', 'Can add placeholder',
                'Can change placeholder', 'Can delete placeholder',
                'Can use Structure mode', 'Can add placeholder reference',
                'Can change placeholder reference', 'Can add content type',
                'Can change content type', 'Can delete content type'
            ]
            usuario = User.objects.get(username=user.username)
            #Le añadimos los permisos al usuario que estamos creando
            for ele in permisos:
                per = Permission.objects.get(name=str(ele))
                usuario.user_permissions.add(per)
            #Guardamos el usuario
            usuario.save()
            #Creamos el usuario de página
            api.create_page_user(created_by=usuario,
                                 user=usuario,
                                 can_add_page=True)
            #Creamos el blog y lo configuramos
            blog = NewsBlogConfig()
            blog.app_title = usuario.username
            blog.namespace = usuario.username
            #Guardamos el blog en nuestra base de datos
            blog.save()
            #Le creamos una página al usuario
            pagina = api.create_page(title=usuario.username,
                                     language='es',
                                     template=TEMPLATE_INHERITANCE_MAGIC,
                                     parent=None,
                                     created_by=usuario,
                                     apphook='NewsBlogApp',
                                     apphook_namespace=usuario.username)
            #Se la asignamos
            api.assign_user_to_page(pagina,
                                    usuario,
                                    can_add=True,
                                    can_change=True,
                                    can_delete=True)
            #Publicamos la página para que sea visile por el resto de usuarios.
            pagina.publish('es')
Ejemplo n.º 5
0
def nuevousuario(sender,user,request,**kwargs):
	if user.username != "administrador":
		activate('en')
		if Page.objects.filter(created_by=user).count() <= 0:
            usuario=User.objects.get(username=user.username)
		    usuario.save()				
			api.create_page_user(created_by=usuario,user=usuario,can_add_page=True)
			blog=NewsBlogConfig()
			blog.app_title=usuario.username
			blog.namespace=usuario.username
			blog.save()
			pagina=api.create_page(title=usuario.username,language='en',template=TEMPLATE_INHERITANCE_MAGIC,parent=None,in_navigation=True,created_by=usuario,apphook='NewsBlogApp',apphook_namespace=usuario.username) 
			api.assign_user_to_page(pagina,usuario,can_add=True,can_change=True,can_delete=True)
			pagina.publish('en')
			print("Usuario y blog creado")
Ejemplo n.º 6
0
def create_page(prueba):
    #creacion de a pagina para el suaurio
    ldap = LDAPBackend()
    user = ldap.populate_user('prueba')
    user.first_name
    #Creamos la configuración para su blog
    user_conf = NewsBlogConfig(app_title=user.first_name,
                               namespace=user.first_name)
    user_conf.save_base()
    user_conf.save()
    #buscar la ubicacion de donde va a colgar su pagina de blog
    parent_page = Page.objects.filter(title_set__title='BLOG_ALUMNOS')[1]
    #creamos la pagina del blog del usuario
    page = cms.api.create_page(user.first_name,
                               'content.html',
                               'en',
                               apphook="NewsBlogApp",
                               apphook_namespace=user_conf.namespace,
                               parent=parent_page,
                               published=True,
                               in_navigation=True)
    #placeholder de su página
    placeholder = page.placeholders.get_or_create(slot='feature')
    placeholder = page.placeholders.get(slot='feature')
    #ahora añadimos los plugins de estilo
    plugin1 = cms.api.add_plugin(placeholder, 'StylePlugin', 'en')
    plugin2 = cms.api.add_plugin(placeholder, 'StylePlugin', 'en')
    plugin2.class_name = "feature-content"
    plugin2.save()
    plugin1.save()
    #le damos todo los permisos al usuario
    user_assigned = cms.api.assign_user_to_page(page, user, grant_all=True)
    page.publish(language='en')
    page_user = cms.api.create_page_user(user,
                                         user,
                                         can_add_page=True,
                                         can_change_page=True,
                                         can_delete_page=True,
                                         can_recover_page=False,
                                         can_add_pageuser=False,
                                         can_change_pageuser=False,
                                         can_delete_pageuser=False,
                                         can_add_pagepermission=False,
                                         can_change_pagepermission=False,
                                         can_delete_pagepermission=False,
                                         grant_all=False)
Ejemplo n.º 7
0
	def handle(self, *args, **options):
		activate('en')
		user=options['user']
		usuario=LDAPBackend().populate_user(user)
		if usuario is None:
			self.stdout.write(self.style.SUCCESS('Usuario no existe'))
		else:				
			if Page.objects.filter(created_by=user).count() <= 0:
				api.create_page_user(created_by=usuario,user=usuario,can_add_page=True)

				blog=NewsBlogConfig()
				blog.app_title=usuario.username
				blog.namespace=usuario.username
				blog.save()

				pagina=api.create_page(title=usuario.username,language='en',template=TEMPLATE_INHERITANCE_MAGIC,parent=None,in_navigation=True,created_by=usuario,apphook='NewsBlogApp',apphook_namespace=usuario.username) 
				api.assign_user_to_page(pagina,usuario,can_add=True,can_change=True,can_delete=True)
				pagina.publish('en')
				self.stdout.write(self.style.SUCCESS('Usuario y blog creado'))
			else:
				self.stdout.write(self.style.SUCCESS('El usuario ya tiene su página y su blog'))
Ejemplo n.º 8
0
    def handle(self, *args, **options):
        #Activar idioma
        activate('en')
        #Recuperar el parámetro guardándolo en la variables user
        user = options['user']
        #Lista de permisos
        permisos = [
            'Can add article', 'Can view article', 'Can change article',
            'Can delete article', 'Can add cms plugin', 'Can view cms plugin',
            'Can change cms plugin', 'Can delete cms plugin',
            'Can add placeholder', 'Can view placeholder',
            'Can change placeholder', 'Can delete placeholder',
            'Can use Structure mode', 'Can add placeholder reference',
            'Can change placeholder reference', 'Can add content type',
            'Can change content type', 'Can delete content type',
            'Can view content type'
        ]
        usuario = LDAPBackend().populate_user(user)
        #Si el usuairo no existe en LDAP asignaremos permisos y si no existe la página del usuario crearmos la Userpage, el blog para el usuario y la página del usuario, luego
        #asignaremos permisos y finalmente publicaremos la página.
        #si ya existe la página del usuario entonces mostramos un mensaje informativo.
        if usuario is None:
            self.stdout.write(
                self.style.SUCCESS('No existe ese usuario en LDAP.'))

        else:
            for p in permisos:
                per = Permission.objects.get(name=str(p))
                usuario.user_permissions.add(per)
            usuario.save()

            try:
                Page.objects.get(created_by=usuario)

            except Page.DoesNotExist:
                #Crear UserPage
                api.create_page_user(created_by=usuario,
                                     user=usuario,
                                     can_add_page=True)
                #Crear Blog
                blog = NewsBlogConfig()
                blog.app_title = usuario.username
                blog.namespace = usuario.username
                blog.save()
                #Crear pagina del usuario
                pagina = api.create_page(title=usuario.username,
                                         language='en',
                                         template=TEMPLATE_INHERITANCE_MAGIC,
                                         parent=None,
                                         created_by=usuario,
                                         apphook='NewsBlogApp',
                                         apphook_namespace=usuario.username)
                #Permisos de usuario
                api.assign_user_to_page(pagina,
                                        usuario,
                                        can_add=True,
                                        can_change=True,
                                        can_delete=True)

                pagina.publish('en')
                self.stdout.write(
                    self.style.SUCCESS(
                        'Creación de usuario y blog finalizada'))

            else:
                self.stdout.write(
                    self.style.SUCCESS(
                        'El usuario ya tiene página y blog creados'))
Ejemplo n.º 9
0
    def handle(self, *args, **options):
        #Activamos el idioma que queremos que utilice en nuestro sitio
        activate('es')
        #Guardamos el parametro de usuario que hemos pasado anteriormente en una variable
        usr = options['user']
        #Introducimos una lista con todos los permisos genericos que tendrá dicho usuario
        permisos = [
            'Can add boostrap3 panel body plugin',
            'Can change boostrap3 panel body plugin',
            'Can add boostrap3 panel plugin',
            'Can change boostrap3 panel plugin', 'Can add article',
            'Can change article', 'Can delete article', 'Can add cms plugin',
            'Can change cms plugin', 'Can delete cms plugin',
            'Can add placeholder', 'Can change placeholder',
            'Can delete placeholder', 'Can use Structure mode',
            'Can add placeholder reference',
            'Can change placeholder reference', 'Can add content type',
            'Can change content type', 'Can delete content type'
        ]

        usuario = LDAPBackend().populate_user(usr)
        #Comprobamos si el usuario existe o no en LDAP
        if usuario is None:
            self.stdout.write(
                self.style.SUCCESS('No existe el usuario en LDAP.'))
        else:
            #Asignamos los permisos al usuario
            for ele in permisos:
                per = Permission.objects.get(name=str(ele))
                usuario.user_permissions.add(per)
            usuario.save()
            #Comprobamos si existe la página del usuario
            try:
                Page.objects.get(created_by=usuario)

            except Page.DoesNotExist:
                #Creamos un Page User
                api.create_page_user(created_by=usuario,
                                     user=usuario,
                                     can_add_page=True)
                #Creamos el blog del usuario
                blog = NewsBlogConfig()
                blog.app_title = usuario.username
                blog.namespace = usuario.username
                blog.save()
                #Creamos la pagina del usuario.
                pagina = api.create_page(title=usuario.username,
                                         language='es',
                                         template=TEMPLATE_INHERITANCE_MAGIC,
                                         parent=None,
                                         created_by=usuario,
                                         apphook='NewsBlogApp',
                                         apphook_namespace=usuario.username)
                #Asignamos los permisos que tendra el usuario sobre su pagina.
                api.assign_user_to_page(pagina,
                                        usuario,
                                        can_add=True,
                                        can_change=True,
                                        can_delete=True)
                #Publicamos la pagina
                pagina.publish('es')
                self.stdout.write(
                    self.style.SUCCESS(
                        'Creacion de usuario finalizada con sus respectivos añadidos.'
                    ))

            else:
                self.stdout.write(
                    self.style.SUCCESS(
                        'El usuario ya tiene páginas en su propiedad.'))