aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Backend/Api/Api/Services/PostService.cs10
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPassword.kt56
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPasswordVerify.kt56
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt7
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Auth/ResetPass.kt4
5 files changed, 115 insertions, 18 deletions
diff --git a/Backend/Api/Api/Services/PostService.cs b/Backend/Api/Api/Services/PostService.cs
index 2f29366..0a12f39 100644
--- a/Backend/Api/Api/Services/PostService.cs
+++ b/Backend/Api/Api/Services/PostService.cs
@@ -23,7 +23,7 @@ namespace Api.Services
{
Post p = new Post();
p._id = "";
- p.ownerId = _httpContext.HttpContext.User.FindFirstValue("id");
+ p.ownerId = _httpContext.HttpContext.User.FindFirstValue("id").ToString();
p.locationId = post.locationId;
p.description = post.description;
@@ -63,14 +63,6 @@ namespace Api.Services
}
await _posts.InsertOneAsync(p);
-
-
-
-
-
-
-
-
return postToPostSend(p);
}
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPassword.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPassword.kt
index e7c9836..b0b7f5e 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPassword.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPassword.kt
@@ -1,27 +1,73 @@
package com.example.brzodolokacije.Activities
import android.content.Intent
+import android.graphics.Color
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
+import android.util.Log
import android.view.View
import android.widget.Button
+import android.widget.EditText
import android.widget.Toast
+import com.example.brzodolokacije.Models.Auth.JustMail
+import com.example.brzodolokacije.Models.Auth.Login
import com.example.brzodolokacije.R
+import com.example.brzodolokacije.Services.RetrofitHelper
+import com.example.brzodolokacije.Services.SharedPreferencesHelper
+import okhttp3.ResponseBody
+import retrofit2.Call
+import retrofit2.Response
class ActivityForgottenPassword : AppCompatActivity() {
private lateinit var sendCode: Button
+ private lateinit var email: EditText
+ private lateinit var emailString:String
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_forgotten_password)
sendCode=findViewById<View>(R.id.forgottenPasswordSendCode) as Button
-
+ email=findViewById<View>(R.id.editTextTextPersonName) as EditText
sendCode.setOnClickListener{
- intent= Intent(this, ActivityForgottenPasswordVerify::class.java)
- startActivity(intent)
- }
+ emailString=email.text.toString().trim()
- }
+ if(!emailString.isEmpty() && checkEmail(emailString)==true) {
+
+ var emailData= JustMail(emailString)
+ val authApi= RetrofitHelper.getInstance()
+ val request=authApi.forgotpass(emailData)
+ val cont=this
+ request.enqueue(object : retrofit2.Callback<ResponseBody?> {
+ override fun onResponse(call: Call<ResponseBody?>, response: Response<ResponseBody?>) {
+ Log.d("main",response.code().toString())
+ Log.d("main",response.body().toString())
+ if(response.code()==200){
+ val intent = Intent(cont, ActivityForgottenPasswordVerify::class.java)
+ intent.putExtra("email", emailString)
+ startActivity(intent)
+ }
+ }
+ override fun onFailure(call: Call<ResponseBody?>, t: Throwable) {
+ }
+ })
+ }
+ }
+ }
+ //from fragment login
+ fun checkEmail(emailString:String):Boolean{
+ val emailRegex = "^[A-Za-z](.*)([@]{1})(.{1,})(\\.)(.{1,})"
+ if(!(emailRegex.toRegex().matches(emailString))){
+ Toast.makeText(
+ this, "Email adresa nije validna, pokušajte ponovo", Toast.LENGTH_LONG
+ ).show();
+ email.setHintTextColor(Color.RED)
+ return false
+ }
+ else{
+ return true
+ }
+ }
} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPasswordVerify.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPasswordVerify.kt
index 6533237..a1db97f 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPasswordVerify.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPasswordVerify.kt
@@ -5,24 +5,72 @@ import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
+import android.widget.EditText
import android.widget.Toast
import com.example.brzodolokacije.MainActivity
+import com.example.brzodolokacije.Models.Auth.Login
+import com.example.brzodolokacije.Models.Auth.ResetPass
import com.example.brzodolokacije.R
+import com.example.brzodolokacije.Services.RetrofitHelper
+import com.example.brzodolokacije.Services.SharedPreferencesHelper
+import okhttp3.ResponseBody
+import retrofit2.Call
+import retrofit2.Response
class ActivityForgottenPasswordVerify : AppCompatActivity() {
private lateinit var changePassword: Button
+ private lateinit var pw:EditText
+ private lateinit var pwchk:EditText
+ private lateinit var kod:EditText
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_forgotten_password_verify)
+ kod=findViewById<View>(R.id.editTextTextPersonName) as EditText
+ pw=findViewById<View>(R.id.editTextoldPassword) as EditText
+ pwchk =findViewById<View>(R.id.editTextTextPassword) as EditText
changePassword=findViewById<View>(R.id.btnChangePassword) as Button
changePassword.setOnClickListener{
+
+ var email =intent.getStringExtra("email")
+ var pwstr=pw.text.toString().trim()
+ var pwchkstr=pwchk.text.toString().trim()
+ var kodstr=kod.text.toString().trim()
+
+ if(!kodstr.isEmpty() && checkPassword(pwstr,pwchkstr)){
+ var resetData= ResetPass(email!!,kodstr,pwstr)
+ val authApi= RetrofitHelper.getInstance()
+ val request=authApi.resetpass(resetData)
+ val cont=this
+ request.enqueue(object : retrofit2.Callback<ResponseBody?> {
+ override fun onResponse(call: Call<ResponseBody?>, response: Response<ResponseBody?>) {
+ if(response.code()==200){
+ intent = Intent(cont, ActivityLoginRegister::class.java)
+ startActivity(intent)
+ }
+ }
+ override fun onFailure(call: Call<ResponseBody?>, t: Throwable) {
+ }
+ })
+ }
+ }
+ }
+
+ //from fragment login
+ fun checkPassword(passwordString:String,passwordConfirm:String):Boolean{
+
+ if(passwordString.length<6){
Toast.makeText(
- this, "Lozinka je uspešno promenjena.", Toast.LENGTH_LONG
+ this, "Lozinke su prekratke", Toast.LENGTH_LONG
).show();
-
- intent= Intent(this, ActivityLoginRegister::class.java)
- startActivity(intent)
+ return false
+ }
+ if(!passwordString.equals(passwordConfirm)){
+ Toast.makeText(
+ this, "Lozinke su se ne poklapaju", Toast.LENGTH_LONG
+ ).show();
+ return false
}
+ return true
}
} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt
index 57e7e82..25f18a3 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt
@@ -1,7 +1,9 @@
package com.example.brzodolokacije.Interfaces
+import com.example.brzodolokacije.Models.Auth.JustMail
import com.example.brzodolokacije.Models.Auth.Login
import com.example.brzodolokacije.Models.Auth.Register
+import com.example.brzodolokacije.Models.Auth.ResetPass
import com.example.brzodolokacije.Models.Post
import okhttp3.ResponseBody
import retrofit2.Call
@@ -16,6 +18,11 @@ interface IAuthApi {
fun register(@Body obj:Register):Call<ResponseBody>
@POST("/api/auth/refreshJwt")
fun refreshJwt(@Header("Authorization") authHeader:String): Call<String>
+ @POST("/api/auth/forgotpass")
+ fun forgotpass(@Body obj:JustMail):Call<ResponseBody>
+ @POST("/api/auth/resetpass")
+ fun resetpass(@Body obj:ResetPass):Call<ResponseBody>
+
//@POST("putanja")
//fun add(@Body obj:Post,@Header("Authorization") authHeader:String):Call<Post>
} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Auth/ResetPass.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Auth/ResetPass.kt
new file mode 100644
index 0000000..945c8d1
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Auth/ResetPass.kt
@@ -0,0 +1,4 @@
+package com.example.brzodolokacije.Models.Auth
+
+data class ResetPass(var email:String,var kod:String,var newpass:String)
+data class JustMail(var email:String) \ No newline at end of file