Esempio n. 1
0
 def save_user(validated_data):
     invitation = InvitationToUserAndWarehouseAdmin.objects.filter(email=validated_data['email']).first()
     if invitation is not None:
         if invitation.accepted:
             user = User(email=validated_data['email'])
             user.set_password(validated_data['password'])
             user.first_name = invitation.first_name
             user.last_name = invitation.last_name
             user.is_staff = False
             user.is_active = True
             user.role = invitation.role
             user.email_confirmation_token = generate_unique_key(user.email)
             user.save()
             if user.role == 'general':
                 company_general_user = CompanyUser(user=user, company=invitation.company)
                 company_general_user.save()
             elif user.role == 'warehouse':
                 warehouse_admin = CompanyWarehouseAdmins(user=user, company=invitation.company)
                 warehouse_admin.save()
             msg = "%s %s (%s) accepted your invitation." % (
                 invitation.first_name, invitation.first_name, invitation.role)
             from_invited_user = User.objects.filter(pk=invitation.user).first()
             print(from_invited_user)
             if from_invited_user.role == 'warehouse':
                 notif = WarehouseAdminNotifications(user=from_invited_user.id, text=msg, seen=False)
                 notif.save()
             notification = CompanyAdminsNotification(company=invitation.company, text=msg)
             notification.save()
             InvitationToUserAndWarehouseAdmin.objects.filter(email=validated_data['email']).delete()
         else:
             raise serializers.ValidationError({'detail': 'Account not accepted.'})
     else:
         raise serializers.ValidationError({'detail': 'Invalid email'})
Esempio n. 2
0
 def save_user(validated_data):
     user = User(email=validated_data['email'])
     user.set_password(validated_data['password'])
     user.is_staff = False
     user.is_active = True
     user.email_confirmation_token = generate_unique_key(user.email)
     user.save()
Esempio n. 3
0
def AlumnosView(request,pagina):
	if request.user.is_authenticated and request.user.is_staff and request.user.is_superuser:
		alumnos = User.objects.filter(status='Alumno')
		paginator = Paginator(alumnos,10)
		try:
			page=int(pagina)
		except:
			page = 1
		try:
			alumnos=paginator.page(page)
		except (EmptyPage,InvalidPage):
			alumnos = paginator.page(paginator.num_pages)
		fecha = datetime.now()
		if fecha.month == 2 or fecha.month == 9:
			for alumno in alumnos:
				alumno.status_semestre = True
				alumno.save()
		info = "Iniciando"
		if request.method =="POST":
			if "buscando" in request.POST:
				buscando = request.POST['buscando']
				try:
					alumnos = User.objects.filter(username__contains=buscando,status='Alumno')
					if alumnos.count() == 0:
						alumnos = User.objects.filter(nombres__contains=buscando,status='Alumno')
					info = 'Encontrados'
					conte = {'informacion':info,'alumnos':alumnos,'alumnos':alumnos}
					return render_to_response('Admin/alumnos.html',conte, context_instance=RequestContext(request))
				except:
					pass
			if "id_product" in request.POST:
				try:
					id_producto = request.POST['id_product']
					p = User.objects.get(pk=id_producto)
					p.delete()#eliminamos el registro
					return HttpResponseRedirect('/Administrador/alumnos/page/1/')
				except:
					return HttpResponseRedirect('/Administrador/alumnos/page/1/')
			if "actualizar" in request.POST:
				try:
					for alu in alumnos:
						if alu.status_semestre == True:
							sem = int(alu.semestre)
							if sem < 12:
								alu.semestre = sem+1
								alu.status_semestre = False
								alu.save()
					return HttpResponseRedirect('/Administrador/alumnos/page/1/')
				except:
					return HttpResponseRedirect('/Administrador/alumnos/page/1/')
			formAlu = AlumnoForm(request.POST,request.FILES)
			if "nuevo" in request.POST:
				if formAlu.is_valid():
					al = User()
					username = formAlu.cleaned_data['username']
					password = formAlu.cleaned_data['password']
					nombres = formAlu.cleaned_data['nombres']
					apellidos = formAlu.cleaned_data['apellidos']
					carrera = formAlu.cleaned_data['carrera']
					semestre = formAlu.cleaned_data['semestre']
					al.username = username
					al.set_password(password)
					al.nombres = nombres
					al.apellidos = apellidos
					al.carrera = carrera
					al.semestre = semestre
					al.status = "Alumno"
					al.is_staff = False
					al.is_actve = True
					al.is_superuser = False
					al.save() #Guardamos la informacion
					return HttpResponseRedirect('/Administrador/alumnos/page/1/')
				else:
					formAlu = AlumnoForm()
					info = 'Algun dato es erroneo'
					ctx = {'informacion':info,'formAlu':formAlu,'alumnos':alumnos,'fecha':fecha}
					return render_to_response('Admin/alumnos.html',ctx, context_instance=RequestContext(request))
		else:
			formAlu = AlumnoForm()
			info = "Iniciando"
			ctx = {'formAlu':formAlu,'informacion':info,'alumnos':alumnos,'fecha':fecha}
			return render_to_response('Admin/alumnos.html',ctx, context_instance=RequestContext(request))
		ctx = {'formAlu':formAlu,'informacion':info,'alumnos':alumnos,'fecha':fecha}
		return render_to_response('Admin/alumnos.html',ctx, context_instance=RequestContext(request))
	else:
		return HttpResponseRedirect('/login/')
Esempio n. 4
0
def MaestrosView(request,pagina):
	if request.user.is_authenticated and request.user.is_staff and request.user.is_superuser:
		maestros = User.objects.filter(status='Maestro')
		paginator = Paginator(maestros,10)
		try:
			page=int(pagina)
		except:
			page = 1
		try:
			maestros=paginator.page(page)
		except (EmptyPage,InvalidPage):
			maestros = paginator.page(paginator.num_pages)
		info = "Iniciando"
		if request.method =="POST":
			if "buscando" in request.POST:
				try:
					buscando = request.POST['buscando']
					maestros = User.objects.filter(nombres__contains=buscando,status='Maestro')
					info = 'Encontrados'
					conte = {'informacion':info,'form':form,'maestros':maestros,'maestros':maestros}
					return render_to_response('Admin/maestros.html',conte, context_instance=RequestContext(request))
				except:
					pass
			if "id_product" in request.POST:
				try:
					id_producto = request.POST['id_product']
					p = User.objects.get(pk=id_producto)
					p.delete()#eliminamos el registro
					return HttpResponseRedirect('/Administrador/maestros/page/1/')
				except:
					return HttpResponseRedirect('/Administrador/maestros/page/1/')
			form = UserForm(request.POST,request.FILES)
			if "nuevo" in request.POST:
				if form.is_valid():
					m = User()
					username = form.cleaned_data['username']
					password = form.cleaned_data['password']
					nombres = form.cleaned_data['nombres']
					apellidos = form.cleaned_data['apellidos']
					m.username = username
					m.set_password(password)
					m.nombres = nombres
					m.apellidos = apellidos
					m.status = "Maestro"
					m.is_staff = True
					m.is_actve = True
					m.is_superuser = False
					m.save() #Guardamos la informacion
					return HttpResponseRedirect('/Administrador/maestros/page/1/')
				else:
					form = UserForm()
					info = 'Completa todos los datos'
					ctx = {'informacion':info,'form':form,'maestros':maestros}
					return render_to_response('Admin/maestros.html',ctx, context_instance=RequestContext(request))
		else:
			form = UserForm()
			info = "Iniciando"
			ctx = {'form':form,'informacion':info,'maestros':maestros}
			return render_to_response('Admin/maestros.html',ctx, context_instance=RequestContext(request))
		ctx = {'form':form,'informacion':info,'maestros':maestros}
		return render_to_response('Admin/maestros.html',ctx, context_instance=RequestContext(request))
	else:
		return HttpResponseRedirect('/login/')
Esempio n. 5
0
    def register(self, request):
        """
        # Register  a new user.

            NOTE. the 'photo' param is required only in this documentation.
        ---
        request_serializer: RegisterSerializer
        response_serializer: UserSerializer
        parameters_strategy: merge
        consumes:
            - application/json

        produces:
            - application/json
        """

        serializer = RegisterSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        application = PlatformApp.objects.get(
            client_id=serializer.data["client_id"],
            client_secret=serializer.data["client_secret"],
        )

        #  ------------------------------------------------------------------------------
        #     ADD application perms in here
        #  ------------------------------------------------------------------------------

        _data = serializer.data.copy()
        del _data["client_id"]
        del _data["client_secret"]
        del _data["password"]

        registered, reason = self.is_user_already_registered(_data)

        if not registered:
            # Create user
            user = User(**_data)
            user.is_staff = False

            # Set activate
            user.is_active = not application.has_confirmation

            # Set password
            user.set_password(serializer.data["password"])
            user.save()

            action = UserAction(
                user=user,
                type=UserAction.ACTION_ENABLE_ACCOUNT,
            )

            action.token = get_uuid()
            action.creation_date, action.expiration_date = get_lapse()
            action.save()

            # Send email
            if application.has_confirmation:
                messaging.send_account_activation(request, action)
            else:
                messaging.send_welcome(request, action)

            user_registered_signal.send(sender=user.__class__, user=user)

            return Response(UserSerializer(user, many=False).data,
                            status=status.HTTP_201_CREATED)

        else:
            raise ValidationError(
                detail=reason,
                code=codes.REGISTERED_USER,
            )