Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F2697712
mfa_test.exs
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
mfa_test.exs
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma.MFATest
do
use
Pleroma.DataCase
,
async
:
true
import
Pleroma.Factory
alias
Pleroma.MFA
describe
"mfa_settings"
do
test
"returns settings user's"
do
user
=
insert
(
:user
,
multi_factor_authentication_settings
:
%
MFA.Settings
{
enabled
:
true
,
totp
:
%
MFA.Settings.TOTP
{
secret
:
"xx"
,
confirmed
:
true
}
}
)
settings
=
MFA
.
mfa_settings
(
user
)
assert
match?
(
^
settings
,
%{
enabled
:
true
,
totp
:
true
})
end
end
describe
"generate backup codes"
do
test
"returns backup codes"
do
user
=
insert
(
:user
)
{
:ok
,
[
code1
,
code2
]}
=
MFA
.
generate_backup_codes
(
user
)
updated_user
=
refresh_record
(
user
)
[
hash1
,
hash2
]
=
updated_user
.
multi_factor_authentication_settings
.
backup_codes
assert
Pbkdf2
.
verify_pass
(
code1
,
hash1
)
assert
Pbkdf2
.
verify_pass
(
code2
,
hash2
)
end
end
describe
"invalidate_backup_code"
do
test
"invalid used code"
do
user
=
insert
(
:user
)
{
:ok
,
_
}
=
MFA
.
generate_backup_codes
(
user
)
user
=
refresh_record
(
user
)
assert
length
(
user
.
multi_factor_authentication_settings
.
backup_codes
)
==
2
[
hash_code
|
_
]
=
user
.
multi_factor_authentication_settings
.
backup_codes
{
:ok
,
user
}
=
MFA
.
invalidate_backup_code
(
user
,
hash_code
)
assert
length
(
user
.
multi_factor_authentication_settings
.
backup_codes
)
==
1
end
end
end
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Jul 18, 7:10 AM (14 h, 51 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
261395
Default Alt Text
mfa_test.exs (1 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment