mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-01-15 09:10:08 +00:00
implement auth remove action
This commit is contained in:
parent
a01b3283d4
commit
62c21523df
@ -82,27 +82,43 @@ impl Gemini {
|
|||||||
widget.on_apply({
|
widget.on_apply({
|
||||||
let widget = widget.clone();
|
let widget = widget.clone();
|
||||||
move |response| {
|
move |response| {
|
||||||
// Get record ID depending of user selection
|
// Get option match user choice
|
||||||
let profile_identity_gemini_id = match response {
|
let option = match response {
|
||||||
Value::PROFILE_IDENTITY_GEMINI_ID(value) => value,
|
Value::PROFILE_IDENTITY_GEMINI_ID(value) => Some(value),
|
||||||
Value::USE_GUEST_SESSION => todo!(),
|
Value::USE_GUEST_SESSION => None,
|
||||||
Value::GENERATE_NEW_AUTH => profile
|
Value::GENERATE_NEW_AUTH => Some(
|
||||||
|
profile
|
||||||
.identity
|
.identity
|
||||||
.gemini
|
.gemini
|
||||||
.create(None, widget.form.name.value().as_deref())
|
.create(None, widget.form.name.value().as_deref())
|
||||||
.unwrap(), // @TODO
|
.unwrap(), // @TODO handle result,
|
||||||
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
// Activate identity for given `auth_uri`
|
// Apply
|
||||||
match profile
|
match option {
|
||||||
|
// Activate identity for `auth_uri`
|
||||||
|
Some(profile_identity_gemini_id) => {
|
||||||
|
profile
|
||||||
.identity
|
.identity
|
||||||
.gemini
|
.gemini
|
||||||
.auth
|
.auth
|
||||||
.activate(profile_identity_gemini_id, auth_url.as_str())
|
.add(profile_identity_gemini_id, auth_url.as_str())
|
||||||
{
|
.unwrap();
|
||||||
Ok(_) => action.reload().activate(),
|
|
||||||
Err(reason) => todo!("{:?}", reason),
|
|
||||||
}
|
}
|
||||||
|
// Remove all identity auths for `auth_uri`
|
||||||
|
None => {
|
||||||
|
profile
|
||||||
|
.identity
|
||||||
|
.gemini
|
||||||
|
.auth
|
||||||
|
.remove(auth_url.as_str())
|
||||||
|
.unwrap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update page
|
||||||
|
action.reload().activate();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -41,16 +41,9 @@ impl Auth {
|
|||||||
/// * deactivate active auth by remove previous records from `Self` database
|
/// * deactivate active auth by remove previous records from `Self` database
|
||||||
/// * reindex `Self` memory index on success
|
/// * reindex `Self` memory index on success
|
||||||
/// * return last insert `profile_identity_gemini_auth_id` on success
|
/// * return last insert `profile_identity_gemini_auth_id` on success
|
||||||
pub fn activate(&self, profile_identity_gemini_id: i64, url: &str) -> Result<i64, Error> {
|
pub fn add(&self, profile_identity_gemini_id: i64, url: &str) -> Result<i64, Error> {
|
||||||
// Get all records match request
|
// Cleanup records match `url` (unauthorize)
|
||||||
match self.database.records(Some(url)) {
|
self.remove(url)?;
|
||||||
Ok(records) => {
|
|
||||||
// Cleanup records match `url` (unauth)
|
|
||||||
for record in records {
|
|
||||||
if let Err(reason) = self.database.delete(record.id) {
|
|
||||||
return Err(Error::DatabaseRecordDelete(record.id, reason));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create new record (auth)
|
// Create new record (auth)
|
||||||
let profile_identity_gemini_auth_id =
|
let profile_identity_gemini_auth_id =
|
||||||
@ -71,8 +64,21 @@ impl Auth {
|
|||||||
// Done
|
// Done
|
||||||
Ok(profile_identity_gemini_auth_id)
|
Ok(profile_identity_gemini_auth_id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Remove all records match request (unauthorize)
|
||||||
|
pub fn remove(&self, url: &str) -> Result<(), Error> {
|
||||||
|
match self.database.records(Some(url)) {
|
||||||
|
Ok(records) => {
|
||||||
|
for record in records {
|
||||||
|
if let Err(reason) = self.database.delete(record.id) {
|
||||||
|
return Err(Error::DatabaseRecordDelete(record.id, reason));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Err(reason) => return Err(Error::DatabaseRecordsRead(url.to_string(), reason)),
|
Err(reason) => return Err(Error::DatabaseRecordsRead(url.to_string(), reason)),
|
||||||
}
|
}
|
||||||
|
self.index()?;
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Create new `Memory` index from `Database` for `Self`
|
/// Create new `Memory` index from `Database` for `Self`
|
||||||
|
Loading…
x
Reference in New Issue
Block a user