owncloud / product

ownCloud Product Backlog
GNU Lesser General Public License v3.0
0 stars 1 forks source link

design life cycle for guest accounts, self service and resource accounts #89

Open butonic opened 4 years ago

butonic commented 4 years ago

the ms graph api knows about differet tpes of users, which is why they have

    // *true* if the account is enabled; otherwise, *false*. This property is required when a user is created. Supports $filter.
    bool account_enabled = 2;

    // A resource account is also known as a /disabled user object/ in Azure AD, and can be used to represent resources in general.
    // In Exchange it might be used to represent conference rooms, for example, and allow them to have a phone number.
    // You could give printers or machines with a sync client resource accounts as well.
    // A resource account can be homed in Microsoft 365 or on premises using Skype for Business Server 2019.
    // *true* if the user is a resource account; otherwise, *false*. Null value should be considered false.
    bool is_resource_account = 3;

    // Indicates whether the account was created as
    // - a regular school or work account ("" / emptystring),
    // - a local account, fully managed by ocis (LocalAccount), includes synced accounts or
    // - an external account (Invitation),
    // - self-service sign-up using email verification (EmailVerified). Read-only.
    string creation_type = 4;

    /* ... */

    // The created date of the account object.
    google.protobuf.Timestamp created_date_time = 16;

    // The date and time the user was deleted. Returned only on $select.
    google.protobuf.Timestamp deleted_date_time = 17;

    /* ... */

    // For an external user invited to the tenant using the invitation API, this property represents the invited user's invitation status.
    // For invited users, the state can be `PendingAcceptance` or `Accepted`, or "" / emptystring for all other users.
    // Returned only on $select. Supports $filter with the supported values. For example: $filter=externalUserState eq 'PendingAcceptance'.
    string external_user_state = 40;

    // Shows the timestamp for the latest change to the externalUserState property. Returned only on $select.
    google.protobuf.Timestamp external_user_state_change_date_time = 41;

With these we should be able to cleanly indicate how and when the user was added as well as deleted.

Resource accounts btw are things like rooms or printers.

exalate-issue-sync[bot] commented 4 years ago

Remote key is https://jira.owncloud.com/browse/OC-2012