Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

ezizce's avatar

User Credentials

Hello, I am writing my Laravel backend program and I need to add a feature to it. User registered then Admin approved. And this user must be 3 months active after that this time expired. Activated: end_date=activated_date+90 days, Deactivated: end_data=activated_data

can i use created_at date time for that?

Thank you your helps

0 likes
2 replies
tykus's avatar

This is all computed based on the activated_date, so you can use accessors like this:

// User Model
protected $casts = [
    'activated_date' => 'date',
];

public function endDate(): Attribute
{
    return new Attribute(
        fn () => $this->activated_date ? $this->activated_date->addDays(90) :  null
    );
}

public function activated(): Attribute
{
    return new Attribute(fn () => (bool) $this->activated_date);
}

public function deactivated(): Attribute
{
    return new Attribute(fn () => $this->activated_date->eq($this->end_date));
}

I don't know if the deactivated property makes a lot of sense, you are only deactive when the two dates are equal???

1 like
ezizce's avatar

@tykus thank you for your reply,

protected $fillable = [ 'first_name', 'last_name', 'middle_name', 'status', 'email', 'password', 'address', 'phone', 'type', 'created_at', ];

const INACTIVE = 0; const PENDING = 1; const ACTIVE = 2;

public function login(Request $request): JsonResponse { $validator = Validator::make($request->all(), [ 'email' => 'required|string|email|max:255', 'password' => 'required|string|min:6', ]);

    if ($validator->fails()) {
        return $this->sendError('api_responses.validation_error', $validator->errors()->all(), 422);
    }
    $credentials = $validator->validated();
    $credentials['type'] = User::TYPE_ADMIN;

    if (!Auth::attempt($credentials)) {
        return $this->sendError('admin_messages.user_invalid_credentials', [], 400);
    }

    /** @var User $user */
    $user = auth()->user();
    if ($user->status !== User::ACTIVE) {
        return $this->sendError('admin_messages.user_pending', [], 400);
    }

    return $this->sendResponse('admin_messages.user_logged_in', [
        'accessToken' => $user->createToken('authToken')->accessToken,
    ]);
}

this is my code.

When user register web site Admin will approve . And this approvement will be 90 days. After 90 days later user will be deactivated automatically. Firstly , user login we must check how many days they have.

Please or to participate in this conversation.