コード例 #1
0
        public virtual async Task UpdateAsync(string providerName, string providerKey, UpdatePermissionsDto input)
        {
            await CheckProviderPolicy(providerName);

            var permissions = await PermissionGrantRepository.GetListAsync(providerName, providerKey);

            foreach (var permission in input.Permissions)
            {
                var editPermission = permissions.FirstOrDefault(p => p.Name.Equals(permission.Name));
                if (editPermission == null)
                {
                    if (permission.IsGranted)
                    {
                        var permissionGrant = new PermissionGrant(GuidGenerator.Create(),
                                                                  permission.Name, providerName, providerKey, CurrentTenant.Id);
                        await PermissionGrantRepository.InsertAsync(permissionGrant);
                    }
                }
                else
                {
                    if (!permission.IsGranted)
                    {
                        await PermissionGrantRepository.DeleteAsync(editPermission.Id);
                    }
                }
            }
        }
コード例 #2
0
        public virtual async Task DeleteAsync(string providerName, string providerKey)
        {
            var permissionGrants = await PermissionGrantRepository.GetListAsync(providerName, providerKey);

            foreach (var permissionGrant in permissionGrants)
            {
                await PermissionGrantRepository.DeleteAsync(permissionGrant);
            }
        }
コード例 #3
0
        /// <summary>
        /// 撤销
        /// </summary>
        /// <param name="name"></param>
        /// <param name="providerKey"></param>
        /// <returns></returns>
        protected virtual async Task RevokeAsync(string name, string providerKey)
        {
            var permissionGrant = await PermissionGrantRepository.FindAsync(name, Name, providerKey);

            if (permissionGrant == null)
            {
                return;
            }
            await PermissionGrantRepository.DeleteAsync(permissionGrant);
        }