Skip to content

Commit cffd74c

Browse files
authored
Merge pull request #60 from hackerchai/master
Feat: bump version 0.9.0
2 parents 930fc68 + 0c8d684 commit cffd74c

File tree

6 files changed

+48
-37
lines changed

6 files changed

+48
-37
lines changed

Cargo.toml

+10-9
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,16 @@ homepage = "https://github.com/casbin-rs/diesel-adapter"
66
license = "Apache-2.0"
77
name = "diesel-adapter"
88
readme = "README.md"
9-
version = "0.8.3"
9+
version = "0.9.0"
1010

1111
[dependencies]
12-
async-std = { version = "1.8.0", default-features = false, optional = true }
13-
async-trait = "0.1.40"
14-
casbin = { version = "~2.0.5", default-features = false }
12+
async-std = { version = "1.9.0", default-features = false, optional = true }
13+
async-trait = "0.1.42"
14+
casbin = { version = "2.0.6", default-features = false }
1515
diesel = { version = "1.4.5", default-features = false, features = ["r2d2"] }
16-
futures = "~0.3"
17-
tokio = { version = "~0.2.22", default-features = false, optional = true }
16+
futures = "0.3"
17+
tokio = { version = "1.1.1", default-features = false, optional = true }
18+
once_cell = "1.5.2"
1819

1920
[features]
2021
default = ["postgres", "runtime-tokio"]
@@ -24,8 +25,8 @@ postgres = ["diesel/postgres"]
2425
sqlite = ["diesel/sqlite"]
2526

2627
runtime-async-std = ["casbin/runtime-async-std", "async-std/unstable"]
27-
runtime-tokio = ["casbin/runtime-tokio", "tokio/blocking", "tokio/rt-core"]
28+
runtime-tokio = ["casbin/runtime-tokio", "tokio/rt"]
2829

2930
[dev-dependencies]
30-
async-std = { version = "1.8.0", features = ["attributes"] }
31-
tokio = { version = "~0.2.22", features = ["full"] }
31+
async-std = { version = "1.9.0", features = ["attributes"] }
32+
tokio = { version = "1.1.1", features = ["full"] }

README.md

+11-2
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,25 @@ Based on [Diesel](https://github.com/diesel-rs/diesel), The current supported da
1111

1212
- [Mysql](https://www.mysql.com/)
1313
- [Postgres](https://github.com/lib/pq)
14+
- [SQLite](https://www.sqlite.org)
1415

16+
## Notice
17+
In order to unify the database table name in Casbin ecosystem, we decide to use `casbin_rule` instead of `casbin_rules` from version `0.9.0`. If you are using old version `diesel-adapter` in your production environment, please use following command and update `diesel-adapter` version:
18+
19+
````SQL
20+
# MySQL & PostgreSQL & SQLite
21+
ALTER TABLE casbin_rules RENAME TO casbin_rule;
22+
````
1523

1624
## Install
1725

1826
Add it to `Cargo.toml`
1927

2028
```
21-
diesel-adapter = { version = "0.8.3", features = ["postgres"] }
22-
async-std = "1.8.0"
29+
diesel-adapter = { version = "0.9.0", features = ["postgres"] }
30+
tokio = "1.1.1"
2331
```
32+
**Warning**: `tokio v1.0` or later is supported from `diesel-adapter v0.9.0`, we recommend that you upgrade the relevant components to ensure that they work properly. The last version that supports `tokio v0.2` is `diesel-adapter v0.8.3` , you can choose according to your needs.
2433

2534
## Example
2635

src/actions.rs

+22-22
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ pub fn new(conn: Result<Pool>) -> Result<usize> {
9797
}
9898

9999
pub fn remove_policy(conn: Pool, pt: &str, rule: Vec<String>) -> Result<bool> {
100-
use schema::casbin_rules::dsl::*;
100+
use schema::casbin_rule::dsl::*;
101101

102102
let rule = normalize_casbin_rule(rule, 0);
103103

@@ -110,14 +110,14 @@ pub fn remove_policy(conn: Pool, pt: &str, rule: Vec<String>) -> Result<bool> {
110110
.and(v4.eq(&rule[4]))
111111
.and(v5.eq(&rule[5]));
112112

113-
diesel::delete(casbin_rules.filter(filter))
113+
diesel::delete(casbin_rule.filter(filter))
114114
.execute(&conn)
115115
.map(|n| n == 1)
116116
.map_err(|err| AdapterError(Box::new(Error::DieselError(err))).into())
117117
}
118118

119119
pub fn remove_policies(conn: Pool, pt: &str, rules: Vec<Vec<String>>) -> Result<bool> {
120-
use schema::casbin_rules::dsl::*;
120+
use schema::casbin_rule::dsl::*;
121121

122122
conn.transaction::<_, DieselError, _>(|| {
123123
for rule in rules {
@@ -132,7 +132,7 @@ pub fn remove_policies(conn: Pool, pt: &str, rules: Vec<Vec<String>>) -> Result<
132132
.and(v4.eq(&rule[4]))
133133
.and(v5.eq(&rule[5]));
134134

135-
match diesel::delete(casbin_rules.filter(filter)).execute(&conn) {
135+
match diesel::delete(casbin_rule.filter(filter)).execute(&conn) {
136136
Ok(n) if n == 1 => continue,
137137
_ => return Err(DieselError::RollbackTransaction),
138138
}
@@ -149,16 +149,16 @@ pub fn remove_filtered_policy(
149149
field_index: usize,
150150
field_values: Vec<String>,
151151
) -> Result<bool> {
152-
use schema::casbin_rules::dsl::*;
152+
use schema::casbin_rule::dsl::*;
153153

154154
let field_values = normalize_casbin_rule(field_values, field_index);
155155

156156
let boxed_query = if field_index == 5 {
157-
diesel::delete(casbin_rules.filter(ptype.eq(pt).and(eq_empty!(&field_values[0], v5))))
157+
diesel::delete(casbin_rule.filter(ptype.eq(pt).and(eq_empty!(&field_values[0], v5))))
158158
.into_boxed()
159159
} else if field_index == 4 {
160160
diesel::delete(
161-
casbin_rules.filter(
161+
casbin_rule.filter(
162162
ptype
163163
.eq(pt)
164164
.and(eq_empty!(&field_values[0], v4))
@@ -168,7 +168,7 @@ pub fn remove_filtered_policy(
168168
.into_boxed()
169169
} else if field_index == 3 {
170170
diesel::delete(
171-
casbin_rules.filter(
171+
casbin_rule.filter(
172172
ptype
173173
.eq(pt)
174174
.and(eq_empty!(&field_values[0], v3))
@@ -179,7 +179,7 @@ pub fn remove_filtered_policy(
179179
.into_boxed()
180180
} else if field_index == 2 {
181181
diesel::delete(
182-
casbin_rules.filter(
182+
casbin_rule.filter(
183183
ptype
184184
.eq(pt)
185185
.and(eq_empty!(&field_values[0], v2))
@@ -191,7 +191,7 @@ pub fn remove_filtered_policy(
191191
.into_boxed()
192192
} else if field_index == 1 {
193193
diesel::delete(
194-
casbin_rules.filter(
194+
casbin_rule.filter(
195195
ptype
196196
.eq(pt)
197197
.and(eq_empty!(&field_values[0], v1))
@@ -204,7 +204,7 @@ pub fn remove_filtered_policy(
204204
.into_boxed()
205205
} else {
206206
diesel::delete(
207-
casbin_rules.filter(
207+
casbin_rule.filter(
208208
ptype
209209
.eq(pt)
210210
.and(eq_empty!(&field_values[0], v0))
@@ -225,22 +225,22 @@ pub fn remove_filtered_policy(
225225
}
226226

227227
pub(crate) fn clear_policy(conn: Pool) -> Result<()> {
228-
use schema::casbin_rules::dsl::casbin_rules;
229-
diesel::delete(casbin_rules)
228+
use schema::casbin_rule::dsl::casbin_rule;
229+
diesel::delete(casbin_rule)
230230
.execute(&conn)
231231
.map(|_| ())
232232
.map_err(|err| AdapterError(Box::new(Error::DieselError(err))).into())
233233
}
234234

235235
pub(crate) fn save_policy(conn: Pool, rules: Vec<NewCasbinRule>) -> Result<()> {
236-
use schema::casbin_rules::dsl::casbin_rules;
236+
use schema::casbin_rule::dsl::casbin_rule;
237237

238238
conn.transaction::<_, DieselError, _>(|| {
239-
if diesel::delete(casbin_rules).execute(&conn).is_err() {
239+
if diesel::delete(casbin_rule).execute(&conn).is_err() {
240240
return Err(DieselError::RollbackTransaction);
241241
}
242242

243-
diesel::insert_into(casbin_rules)
243+
diesel::insert_into(casbin_rule)
244244
.values(&rules)
245245
.execute(&*conn)
246246
.and_then(|n| {
@@ -256,28 +256,28 @@ pub(crate) fn save_policy(conn: Pool, rules: Vec<NewCasbinRule>) -> Result<()> {
256256
}
257257

258258
pub(crate) fn load_policy(conn: Pool) -> Result<Vec<CasbinRule>> {
259-
use schema::casbin_rules::dsl::casbin_rules;
259+
use schema::casbin_rule::dsl::casbin_rule;
260260

261-
casbin_rules
261+
casbin_rule
262262
.load::<CasbinRule>(&conn)
263263
.map_err(|err| AdapterError(Box::new(Error::DieselError(err))).into())
264264
}
265265

266266
pub(crate) fn add_policy(conn: Pool, new_rule: NewCasbinRule) -> Result<bool> {
267-
use schema::casbin_rules::dsl::casbin_rules;
267+
use schema::casbin_rule::dsl::casbin_rule;
268268

269-
diesel::insert_into(casbin_rules)
269+
diesel::insert_into(casbin_rule)
270270
.values(&new_rule)
271271
.execute(&conn)
272272
.map(|n| n == 1)
273273
.map_err(|err| AdapterError(Box::new(Error::DieselError(err))).into())
274274
}
275275

276276
pub(crate) fn add_policies(conn: Pool, new_rules: Vec<NewCasbinRule>) -> Result<bool> {
277-
use schema::casbin_rules::dsl::casbin_rules;
277+
use schema::casbin_rule::dsl::casbin_rule;
278278

279279
conn.transaction::<_, DieselError, _>(|| {
280-
diesel::insert_into(casbin_rules)
280+
diesel::insert_into(casbin_rule)
281281
.values(&new_rules)
282282
.execute(&*conn)
283283
.and_then(|n| {

src/adapter.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ pub struct DieselAdapter {
2020
is_filtered: bool,
2121
}
2222

23-
pub const TABLE_NAME: &str = "casbin_rules";
23+
pub const TABLE_NAME: &str = "casbin_rule";
2424

2525
impl DieselAdapter {
2626
pub fn new<U: Into<String>>(url: U, pool_size: u32) -> Result<Self> {

src/models.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
use super::schema::casbin_rules;
1+
use super::schema::casbin_rule;
22

33
#[derive(Queryable, Identifiable)]
4+
#[table_name = "casbin_rule"]
45
pub(crate) struct CasbinRule {
56
pub id: i32,
67
pub ptype: String,
@@ -13,7 +14,7 @@ pub(crate) struct CasbinRule {
1314
}
1415

1516
#[derive(Insertable, Clone)]
16-
#[table_name = "casbin_rules"]
17+
#[table_name = "casbin_rule"]
1718
pub(crate) struct NewCasbinRule {
1819
pub ptype: String,
1920
pub v0: String,

src/schema.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
table! {
2-
casbin_rules (id) {
2+
casbin_rule (id) {
33
id -> Integer,
44
ptype -> Varchar,
55
v0 -> Varchar,

0 commit comments

Comments
 (0)