@@ -70,36 +70,33 @@ def name(self, name: str):
7070 core .BNCollaborationGroupSetName (self ._handle , name )
7171
7272 @property
73- def users (self ) -> List [Tuple [ str , str ] ]:
73+ def users (self ) -> List [user . User ]:
7474 """
7575 Get list of users in the group
7676
77- :return: List of (userid, username) pairs
77+ :return: List of users
7878 """
7979 count = ctypes .c_size_t ()
80- user_ids = ctypes .POINTER (ctypes .c_char_p )()
81- usernames = ctypes .POINTER (ctypes .c_char_p )()
82- if not core .BNCollaborationGroupGetUsers (self ._handle , user_ids , usernames , count ):
80+ result = core .BNCollaborationGroupGetUsers (self ._handle , count )
81+ if not result :
8382 raise RuntimeError (util ._last_error ())
84- result = []
83+ out = []
8584 for i in range (count .value ):
86- result .append ((core .pyNativeStr (user_ids [i ]), core .pyNativeStr (usernames [i ])))
87- core .BNFreeStringList (user_ids , count .value )
88- core .BNFreeStringList (usernames , count .value )
89- return result
85+ out .append (user .User (result [i ]))
86+ return out
9087
9188 @users .setter
92- def users (self , usernames : List [str ]):
89+ def users (self , users : List [user . User ]):
9390 """
94- Set the list of users in a group by their usernames .
91+ Set the list of users in a group.
9592 You will need to push the group to update the Remote.
9693
97- :param usernames: Usernames of new group members
94+ :param users: New group members
9895 """
99- array = ( ctypes .c_char_p * len ( usernames ) )()
100- for i in range (len (usernames )):
101- array [i ] = core . cstr ( usernames [i ])
102- if not core .BNCollaborationGroupSetUsernames (self ._handle , array , len (usernames )):
96+ array = ctypes .POINTER ( core . BNCollaborationUserHandle )()
97+ for i in range (len (users )):
98+ array [i ] = users [i ]. _handle
99+ if not core .BNCollaborationGroupSetUsers (self ._handle , array , len (users )):
103100 raise RuntimeError (util ._last_error ())
104101
105102 def contains_user (self , user : user .User ) -> bool :
0 commit comments