working on permissions
This commit is contained in:
@@ -71,11 +71,16 @@ public class ListMember {
|
||||
Database.open().query(sql).run();
|
||||
}
|
||||
|
||||
public boolean hasState(int testState) {
|
||||
return (state & testState) > 0;
|
||||
}
|
||||
|
||||
|
||||
public static Set<String> listsOwnedBy(User user) {
|
||||
var list = new HashSet<String>();
|
||||
try {
|
||||
var request = Database.open().select(TABLE_NAME, LIST_EMAIL, STATE+" & "+STATE_OWNER+" as "+STATE);
|
||||
if (!user.is(ADMIN)) request = request.where(USER_EMAIL, user.email()).where(STATE, STATE_OWNER);
|
||||
if (!user.hashPermission(User.PERMISSION_ADMIN)) request = request.where(USER_EMAIL, user.email()).where(STATE, STATE_OWNER);
|
||||
var rs = request.exec();
|
||||
while (rs.next()) list.add(rs.getString(LIST_EMAIL));
|
||||
} catch (SQLException e) {
|
||||
@@ -84,6 +89,26 @@ public class ListMember {
|
||||
return list;
|
||||
}
|
||||
|
||||
public static ListMember load(MailingList list,User user) throws SQLException {
|
||||
var rs = Database
|
||||
.open()
|
||||
.select(TABLE_NAME)
|
||||
.where(LIST_EMAIL,list.email())
|
||||
.where(USER_EMAIL,user.email())
|
||||
.exec();
|
||||
try {
|
||||
if (rs.next()) {
|
||||
return new ListMember(rs.getString(LIST_EMAIL),
|
||||
rs.getString(USER_EMAIL),
|
||||
rs.getInt(STATE),
|
||||
rs.getString(TOKEN));
|
||||
}
|
||||
} finally {
|
||||
rs.close();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static Map<User,Integer> of(String listEmail) throws SQLException {
|
||||
var rs = Database.open()
|
||||
.select(TABLE_NAME)
|
||||
@@ -142,5 +167,4 @@ public class ListMember {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user