public static function find_or_create($type, $authenticator, $domain, $username)
	{
		$hzad = Domain::find_or_create($type, $authenticator, $domain);

		if (!$hzad)
		{
			return false;
		}

		if (empty($username))
		{
			return false;
		}

		$row = self::all()
			->whereEquals('auth_domain_id', $hzad->get('id'))
			->whereEquals('username', $username)
			->row();

		if (!$row || !$row->get('id'))
		{
			$row = self::blank();
			$row->set('auth_domain_id', $hzad->get('id'));
			$row->set('username', $username);
			$row->save();
		}

		if (!$row->get('id'))
		{
			return false;
		}

		return $row;
	}