/// <summary>
            /// 获取白名单
            /// </summary>
            /// <param name="type">白名单类型,USERNAME 为用户名、Email 为邮箱、Phone 为手机号。</param>
            /// <param name="cancellationToken"></param>
            /// <returns></returns>
            public async Task <IEnumerable <WhiteList> > List(WhitelistType type, CancellationToken cancellationToken = default)
            {
                var param = new WhitelistParam(type);

                var res = await client.Request <WhitelistResponse>(param.CreateRequest(), cancellationToken);

                return(res.Result);
            }
Esempio n. 2
0
            /// <summary>
            /// 用户池详情
            /// </summary>
            /// <param name="cancellationToken"></param>
            /// <returns></returns>
            public async Task <UserPool> Detail(CancellationToken cancellationToken = default)
            {
                var param = new UserpoolParam();

                await client.GetAccessToken();

                var res = await client.Request <UserpoolResponse>(param.CreateRequest(), cancellationToken);

                return(res.Result);
            }
Esempio n. 3
0
            /// <summary>
            /// 设置自定义字段元数据,如果字段不存在则会创建,存在会更新
            /// </summary>
            /// <param name="type">自定义字段目标类型, USER 表示用户、ROLE 表示角色。</param>
            /// <param name="key">字段 key</param>
            /// <param name="dataType">数据类型,目前共支持五种数据类型。STRING 为字符串、NUMBER 为数字、DATETIME 为日期、BOOLEAN 为 boolean 值、OBJECT 为对象。</param>
            /// <param name="label">字段 Label,一般是一个 Human Readable 字符串。</param>
            /// <param name="cancellationToken"></param>
            /// <returns></returns>
            public async Task <UserDefinedField> Set(
                UdfTargetType type,
                string key,
                UdfDataType dataType,
                string label,
                CancellationToken cancellationToken = default)
            {
                var param = new SetUdfParam(type, key, dataType, label);

                var res = await client.Request <SetUdfResponse>(param.CreateRequest(), cancellationToken);

                return(res.Result);
            }
            /// <summary>
            /// 更新用户池信息
            /// </summary>
            /// <param name="updates"></param>
            /// <param name="cancellationToken"></param>
            /// <returns></returns>
            public async Task <UserPool> Update(UpdateUserpoolInput updates, CancellationToken cancellationToken = default)
            {
                var param = new UpdateUserpoolParam(updates);

                var res = await client.Request <UpdateUserpoolResponse>(param.CreateRequest(), cancellationToken);

                return(res.Result);
            }
Esempio n. 5
0
            /// <summary>
            /// 允许某个用户操作某个资源
            /// </summary>
            /// <param name="resource"></param>
            /// <param name="action"></param>
            /// <param name="userId"></param>
            /// <param name="role"></param>
            /// <param name="cancellationToken"></param>
            /// <returns></returns>
            public async Task <CommonMessage> Allow(
                string resource,
                string action,
                string userId = null,
                string role   = null,
                CancellationToken cancellationToken = default)
            {
                var param = new AllowParam(resource, action)
                {
                    UserId   = userId,
                    RoleCode = role,
                };
                await client.GetAccessToken();

                var res = await client.Request <AllowResponse>(param.CreateRequest(), cancellationToken);

                return(res.Result);
            }
Esempio n. 6
0
            /// <summary>
            /// 获取分组列表
            /// </summary>
            /// <param name="page">分页页数,默认为 1</param>
            /// <param name="limit">分页大小,默认为 10</param>
            /// <param name="cancellationToken"></param>
            /// <returns></returns>
            public async Task <PaginatedGroups> List(
                int page  = 1,
                int limit = 10,
                CancellationToken cancellationToken = default)
            {
                var param = new GroupsParam()
                {
                    Page  = page,
                    Limit = limit,
                };

                await client.GetAccessToken();

                var res = await client.Request <GroupsResponse>(param.CreateRequest(), cancellationToken);

                return(res.Result);
            }
            /// <summary>
            /// 获取策略列表
            /// </summary>
            /// <param name="page">分页页数,默认为 1</param>
            /// <param name="limit">分页大小,默认为 10</param>
            /// <param name="excludeDefault">包含系统默认的策略,默认为 true</param>
            /// <param name="cancellationToken"></param>
            /// <returns></returns>
            public async Task <PaginatedPolicies> List(
                int page            = 1,
                int limit           = 10,
                bool excludeDefault = true,
                CancellationToken cancellationToken = default)
            {
                var param = new PoliciesParam()
                {
                    Page  = page,
                    Limit = limit,
                    // ExcludeDefault = excludeDefault,
                };

                await client.GetAccessToken();

                var res = await client.Request <PoliciesResponse>(param.CreateRequest(), cancellationToken);

                return(res.Result);
            }
Esempio n. 8
0
            /// <summary>
            /// 创建分组
            /// </summary>
            /// <param name="code">分组唯一标志</param>
            /// <param name="name">分组名称</param>
            /// <param name="description">描述</param>
            /// <param name="cancellationToken"></param>
            /// <returns></returns>
            public async Task <Group> Create(
                string code,
                string name,
                string description = null,
                CancellationToken cancellationToken = default)
            {
                var param = new CreateGroupParam(code, name)
                {
                    Description = description,
                };

                var res = await client.Request <CreateGroupResponse>(param.CreateRequest(), cancellationToken);

                return(res.Result);
            }
            public async Task <Types.Org> Create(string name, string description = null, string code = null, CancellationToken cancellationToken = default)
            {
                var param = new CreateOrgParam(name)
                {
                    Description = description,
                    Code        = code
                };
                var res = await client.Request <CreateOrgResponse>(param.CreateRequest(), cancellationToken);

                return(res.Result);
            }
Esempio n. 10
0
            /// <summary>
            /// 创建用户
            /// </summary>
            /// <param name="userInfo">用户信息</param>
            /// <param name="cancellationToken"></param>
            /// <returns></returns>
            /// TODO: 下一个大版本移除
            public async Task <User> Create(
                CreateUserInput userInfo,
                bool keepPassword = false,
                CancellationToken cancellationToken = default)
            {
                userInfo.Password = client.Encrypt(userInfo.Password);
                var param = new CreateUserParam(userInfo)
                {
                    KeepPassword = keepPassword,
                };

                var res = await client.Request <CreateUserResponse>(param.CreateRequest(), cancellationToken);

                return(res.Result);
            }
            /// <summary>
            /// 创建角色
            /// </summary>
            /// <param name="code">角色唯一标志</param>
            /// <param name="description">角色描述</param>
            /// <param name="parentCode">父角色唯一标志</param>
            /// <param name="cancellationToken"></param>
            /// <returns></returns>
            public async Task <Role> Create(
                string code,
                string description = null,
                string parentCode  = null,
                CancellationToken cancellationToken = default)
            {
                var param = new CreateRoleParam(code)
                {
                    Description = description,
                    Parent      = parentCode,
                };
                var res = await client.Request <CreateRoleResponse>(param.CreateRequest(), cancellationToken);

                return(res.Result);
            }