pub struct CBUserIdentity { /* private fields */ }CBIdentity only.Expand description
An object of the CBUserIdentity class represents a user identity and is
used for accessing the attributes of a user identity from an identity
authority. The principal attributes of CBUserIdentity are a POSIX user
identifier (UID), password, and certificate.
See also Apple’s documentation
Implementations§
Source§impl CBUserIdentity
impl CBUserIdentity
Available on crate features CBIdentityAuthority and libc only.
CBIdentityAuthority and libc only.Returns the user identity with the given POSIX UID in the specified identity authority.
-
Parameters:
-
uid: The UID of the identity you are searching for.
-
authority: The identity authority to search.
-
Returns: The user identity with the given UID in the specified identity authority, or
nilif no identity exists with the specified UID.
Sourcepub unsafe fn posixUID(&self) -> uid_t
Available on crate feature libc only.
pub unsafe fn posixUID(&self) -> uid_t
libc only.Returns the POSIX UID of the identity.
The POSIX UID is a integer that can identify a user within an identity authority. UIDs are not guaranteed to be unique within an identity authority.
- Returns: The POSIX UID of the identity.
Sourcepub unsafe fn certificate(&self) -> Option<Retained<SecCertificate>>
Available on crate feature objc2-security only.
pub unsafe fn certificate(&self) -> Option<Retained<SecCertificate>>
objc2-security only.Returns the public authentication certificate associated with a user identity.
The Collaboration framework supports certificate-based authentication in addition to passwords. If a certificate is stored for a user identity, it will be the default method of authentication.
When a .Mac account is associated with a user identity, the authentication certificate is automatically downloaded from the .Mac servers.
- Returns: The public authentication certificate, or
nilif none exists.
Sourcepub unsafe fn isEnabled(&self) -> bool
pub unsafe fn isEnabled(&self) -> bool
Returns a Boolean value indicating whether the identity is allowed to authenticate.
If the identity does not have authentication credentials (a password or certificate), it is not able to log in. However, an identity with authentication credentials does not ensure that it is enabled. Any identity can be disabled.
- Returns:
TRUEif the identity can authenticate; otherwise,FALSE.
Sourcepub unsafe fn authenticateWithPassword(&self, password: &NSString) -> bool
pub unsafe fn authenticateWithPassword(&self, password: &NSString) -> bool
Returns a Boolean value indicating whether the given password is correct for the identity.
-
Parameters:
-
password: The password to test for the identity.
-
Returns:
TRUEif the password is correct; otherwise,FALSE.
Methods from Deref<Target = CBIdentity>§
Available on crate feature CBIdentityAuthority only.
CBIdentityAuthority only.Returns the identity authority where the identity is stored.
- Returns: The identity authority where the identity is stored.
pub unsafe fn uniqueIdentifier(&self) -> Retained<NSUUID>
Sourcepub unsafe fn UUIDString(&self) -> Retained<NSString>
👎Deprecated: Use the uniqueIdentifier property instead.
pub unsafe fn UUIDString(&self) -> Retained<NSString>
Returns the UUID of the identity as a string.
The UUID string is generated so it is unique across all identity
authorities. When storing ACLs, one method is to store the UUID of each
identity. However, it is recommended that you use a persistent data object
instead (see CBIdentity/persistentReference).
- Returns: The UUID string of the identity.
Sourcepub unsafe fn fullName(&self) -> Retained<NSString>
pub unsafe fn fullName(&self) -> Retained<NSString>
Returns the full name of the identity.
- Returns: The full name for the identity.
Sourcepub unsafe fn posixName(&self) -> Retained<NSString>
pub unsafe fn posixName(&self) -> Retained<NSString>
Returns the POSIX name of the identity.
The POSIX name is also referred to as the “short name” for an identity. It can only contain the characters A-Z, a-z, 0-9, -, _, ., and .
- Returns: The POSIX name of the identity.
Sourcepub unsafe fn aliases(&self) -> Retained<NSArray<NSString>>
pub unsafe fn aliases(&self) -> Retained<NSArray<NSString>>
Returns an array of aliases (alternate names) for the identity.
An identity can have zero or more aliases. Like the full and short names, two identities cannot share an alias.
- Returns: An array of
NSStringobjects containing the alternate names for the identity.
Sourcepub unsafe fn emailAddress(&self) -> Option<Retained<NSString>>
pub unsafe fn emailAddress(&self) -> Option<Retained<NSString>>
Returns the email address of an identity.
- Returns: The email address of an identity or
nilif none exists.
Sourcepub unsafe fn image(&self) -> Option<Retained<NSImage>>
Available on crate feature objc2-app-kit only.
pub unsafe fn image(&self) -> Option<Retained<NSImage>>
objc2-app-kit only.Returns the image associated with an identity.
- Returns: The image associated with an identity, or
nilif none exists.
Sourcepub unsafe fn persistentReference(&self) -> Option<Retained<NSData>>
pub unsafe fn persistentReference(&self) -> Option<Retained<NSData>>
Returns a persistent reference to store a reference to an identity.
A persistent reference data object is an object generated from an identity. Persistent data objects can be written to and read from a file, making them extremely useful for storing identities in an ACL.
- Returns: A data object that uniquely references an identity.
Sourcepub unsafe fn isHidden(&self) -> bool
pub unsafe fn isHidden(&self) -> bool
Returns a Boolean value indicating the state of the identity’s hidden property.
A hidden identity does not show up in the Identity Picker. A hidden identity refers
to system identities such as root, www, and wheel.
- Returns: <doc ://com.apple.documentation/documentation/objectivec/yes> if the identity is hidden; <doc ://com.apple.documentation/documentation/objectivec/no> if it is not.
Sourcepub unsafe fn isMemberOfGroup(&self, group: &CBGroupIdentity) -> bool
pub unsafe fn isMemberOfGroup(&self, group: &CBGroupIdentity) -> bool
Returns a Boolean value indicating whether the identity is a member of the specified group.
-
Parameters:
-
group: The group to check for membership.
-
Returns: <doc ://com.apple.documentation/documentation/objectivec/yes> if the identity is a member of the group; <doc ://com.apple.documentation/documentation/objectivec/no> if it is not.
Sourcepub unsafe fn CSIdentity(&self) -> Retained<CSIdentity>
Available on crate feature objc2-core-services only.
pub unsafe fn CSIdentity(&self) -> Retained<CSIdentity>
objc2-core-services only.Returns an opaque object for use with the Core Services Identity API.
This method, along with CBIdentity/identityWithCSIdentity:, is used for
interoperability with the Core Services Identity API.
- Returns: The opaque object for use with the Core Services Identity API.
Methods from Deref<Target = NSObject>§
Sourcepub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
Handle messages the object doesn’t recognize.
See Apple’s documentation for details.
Methods from Deref<Target = AnyObject>§
Sourcepub fn class(&self) -> &'static AnyClass
pub fn class(&self) -> &'static AnyClass
Dynamically find the class of this object.
§Panics
May panic if the object is invalid (which may be the case for objects
returned from unavailable init/new methods).
§Example
Check that an instance of NSObject has the precise class NSObject.
use objc2::ClassType;
use objc2::runtime::NSObject;
let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());Sourcepub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load instead.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
Ivar::load instead.Use Ivar::load instead.
§Safety
The object must have an instance variable with the given name, and it
must be of type T.
See Ivar::load_ptr for details surrounding this.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
Attempt to downcast the object to a class of type T.
This is the reference-variant. Use Retained::downcast if you want
to convert a retained object to another type.
§Mutable classes
Some classes have immutable and mutable variants, such as NSString
and NSMutableString.
When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.
So using this method to convert a NSString to a NSMutableString,
while not unsound, is generally frowned upon unless you created the
string yourself, or the API explicitly documents the string to be
mutable.
See Apple’s documentation on mutability and on
isKindOfClass: for more details.
§Generic classes
Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.
You can, however, safely downcast to generic collections where all the
type-parameters are AnyObject.
§Panics
This works internally by calling isKindOfClass:. That means that the
object must have the instance method of that name, and an exception
will be thrown (if CoreFoundation is linked) or the process will abort
if that is not the case. In the vast majority of cases, you don’t need
to worry about this, since both root objects NSObject and
NSProxy implement this method.
§Examples
Cast an NSString back and forth from NSObject.
use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};
let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();Try (and fail) to cast an NSObject to an NSString.
use objc2_foundation::{NSObject, NSString};
let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());Try to cast to an array of strings.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.
Downcast when processing each element instead.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
for elem in arr {
if let Some(data) = elem.downcast_ref::<NSString>() {
// handle `data`
}
}Trait Implementations§
Source§impl AsRef<AnyObject> for CBUserIdentity
impl AsRef<AnyObject> for CBUserIdentity
Source§impl AsRef<CBIdentity> for CBUserIdentity
impl AsRef<CBIdentity> for CBUserIdentity
Source§fn as_ref(&self) -> &CBIdentity
fn as_ref(&self) -> &CBIdentity
Source§impl AsRef<CBUserIdentity> for CBUserIdentity
impl AsRef<CBUserIdentity> for CBUserIdentity
Source§impl AsRef<NSObject> for CBUserIdentity
impl AsRef<NSObject> for CBUserIdentity
Source§impl Borrow<AnyObject> for CBUserIdentity
impl Borrow<AnyObject> for CBUserIdentity
Source§impl Borrow<CBIdentity> for CBUserIdentity
impl Borrow<CBIdentity> for CBUserIdentity
Source§fn borrow(&self) -> &CBIdentity
fn borrow(&self) -> &CBIdentity
Source§impl Borrow<NSObject> for CBUserIdentity
impl Borrow<NSObject> for CBUserIdentity
Source§impl ClassType for CBUserIdentity
impl ClassType for CBUserIdentity
Source§const NAME: &'static str = "CBUserIdentity"
const NAME: &'static str = "CBUserIdentity"
Source§type Super = CBIdentity
type Super = CBIdentity
Source§type ThreadKind = <<CBUserIdentity as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<CBUserIdentity as ClassType>::Super as ClassType>::ThreadKind
Source§impl CopyingHelper for CBUserIdentity
impl CopyingHelper for CBUserIdentity
Source§type Result = CBUserIdentity
type Result = CBUserIdentity
Self if the type has no
immutable counterpart. Read moreSource§impl Debug for CBUserIdentity
impl Debug for CBUserIdentity
Source§impl Deref for CBUserIdentity
impl Deref for CBUserIdentity
Source§impl Hash for CBUserIdentity
impl Hash for CBUserIdentity
Source§impl Message for CBUserIdentity
impl Message for CBUserIdentity
Source§impl NSCoding for CBUserIdentity
impl NSCoding for CBUserIdentity
Source§impl NSCopying for CBUserIdentity
impl NSCopying for CBUserIdentity
Source§impl NSObjectProtocol for CBUserIdentity
impl NSObjectProtocol for CBUserIdentity
Source§fn isEqual(&self, other: Option<&AnyObject>) -> bool
fn isEqual(&self, other: Option<&AnyObject>) -> bool
Source§fn hash(&self) -> usize
fn hash(&self) -> usize
Source§fn isKindOfClass(&self, cls: &AnyClass) -> bool
fn isKindOfClass(&self, cls: &AnyClass) -> bool
Source§fn is_kind_of<T>(&self) -> bool
fn is_kind_of<T>(&self) -> bool
isKindOfClass directly, or cast your objects with AnyObject::downcast_ref