mirror of
https://gitlab.com/davical-project/davical.git
synced 2026-05-30 03:24:47 +00:00
Don't expect an active column on principal.
This commit is contained in:
parent
1b1684e10f
commit
b451f9d9d9
@ -53,17 +53,17 @@ INSERT INTO collection (user_no, parent_container, dav_name, dav_etag,
|
|||||||
FALSE, FALSE, user_no, '<DAV::collection/><urn:ietf:params:xml:ns:caldav:calendar/>'
|
FALSE, FALSE, user_no, '<DAV::collection/><urn:ietf:params:xml:ns:caldav:calendar/>'
|
||||||
FROM usr;
|
FROM usr;
|
||||||
|
|
||||||
INSERT INTO principal (type_id, user_no, displayname, active, default_privileges)
|
INSERT INTO principal (type_id, user_no, displayname, default_privileges)
|
||||||
SELECT 1, user_no, fullname, active, privilege_to_bits(ARRAY['read-free-busy','schedule-send','schedule-deliver']) FROM usr
|
SELECT 1, user_no, fullname, privilege_to_bits(ARRAY['read-free-busy','schedule-send','schedule-deliver']) FROM usr
|
||||||
WHERE NOT EXISTS(SELECT 1 FROM role_member JOIN roles USING(role_no) WHERE role_name = 'Group' AND role_member.user_no = usr.user_no)
|
WHERE NOT EXISTS(SELECT 1 FROM role_member JOIN roles USING(role_no) WHERE role_name = 'Group' AND role_member.user_no = usr.user_no)
|
||||||
AND NOT EXISTS(SELECT 1 FROM role_member JOIN roles USING(role_no) WHERE role_name = 'Resource' AND role_member.user_no = usr.user_no) ;
|
AND NOT EXISTS(SELECT 1 FROM role_member JOIN roles USING(role_no) WHERE role_name = 'Resource' AND role_member.user_no = usr.user_no) ;
|
||||||
|
|
||||||
INSERT INTO principal (type_id, user_no, displayname, active, default_privileges)
|
INSERT INTO principal (type_id, user_no, displayname, default_privileges)
|
||||||
SELECT 2, user_no, fullname, active, privilege_to_bits(ARRAY['read','schedule-send','schedule-deliver']) FROM usr
|
SELECT 2, user_no, fullname, privilege_to_bits(ARRAY['read','schedule-send','schedule-deliver']) FROM usr
|
||||||
WHERE EXISTS(SELECT 1 FROM role_member JOIN roles USING(role_no) WHERE role_name = 'Resource' AND role_member.user_no = usr.user_no);
|
WHERE EXISTS(SELECT 1 FROM role_member JOIN roles USING(role_no) WHERE role_name = 'Resource' AND role_member.user_no = usr.user_no);
|
||||||
|
|
||||||
INSERT INTO principal (type_id, user_no, displayname, active, default_privileges)
|
INSERT INTO principal (type_id, user_no, displayname, default_privileges)
|
||||||
SELECT 3, user_no, fullname, active, privilege_to_bits(ARRAY['read-free-busy','schedule-send','schedule-deliver']) FROM usr
|
SELECT 3, user_no, fullname, privilege_to_bits(ARRAY['read-free-busy','schedule-send','schedule-deliver']) FROM usr
|
||||||
WHERE EXISTS(SELECT 1 FROM role_member JOIN roles USING(role_no) WHERE role_name = 'Group' AND role_member.user_no = usr.user_no);
|
WHERE EXISTS(SELECT 1 FROM role_member JOIN roles USING(role_no) WHERE role_name = 'Group' AND role_member.user_no = usr.user_no);
|
||||||
|
|
||||||
SELECT setval('dav_id_seq', 1000);
|
SELECT setval('dav_id_seq', 1000);
|
||||||
|
|||||||
@ -368,17 +368,17 @@ class DAVResource
|
|||||||
);
|
);
|
||||||
|
|
||||||
$base_sql = 'SELECT collection.*, path_privileges(:session_principal, collection.dav_name), ';
|
$base_sql = 'SELECT collection.*, path_privileges(:session_principal, collection.dav_name), ';
|
||||||
$base_sql .= 'p.principal_id, p.type_id AS principal_type_id, p.active AS principal_active, ';
|
$base_sql .= 'p.principal_id, p.type_id AS principal_type_id, ';
|
||||||
$base_sql .= 'p.displayname AS principal_displayname, p.default_privileges AS principal_default_privileges ';
|
$base_sql .= 'p.displayname AS principal_displayname, p.default_privileges AS principal_default_privileges ';
|
||||||
$base_sql .= 'FROM collection LEFT JOIN principal p USING (user_no) WHERE ';
|
$base_sql .= 'FROM collection LEFT JOIN principal p USING (user_no) WHERE ';
|
||||||
$sql = $base_sql .'dav_name = :raw_path ';
|
$sql = $base_sql .'collection.dav_name = :raw_path ';
|
||||||
$params = array( ':raw_path' => $this->dav_name, ':session_principal' => $session->principal_id );
|
$params = array( ':raw_path' => $this->dav_name, ':session_principal' => $session->principal_id );
|
||||||
if ( !preg_match( '#/$#', $this->dav_name ) ) {
|
if ( !preg_match( '#/$#', $this->dav_name ) ) {
|
||||||
$sql .= ' OR dav_name = :up_to_slash OR dav_name = :plus_slash ';
|
$sql .= ' OR collection.dav_name = :up_to_slash OR collection.dav_name = :plus_slash ';
|
||||||
$params[':up_to_slash'] = preg_replace( '#[^/]*$#', '', $this->dav_name);
|
$params[':up_to_slash'] = preg_replace( '#[^/]*$#', '', $this->dav_name);
|
||||||
$params[':plus_slash'] = $this->dav_name.'/';
|
$params[':plus_slash'] = $this->dav_name.'/';
|
||||||
}
|
}
|
||||||
$sql .= 'ORDER BY LENGTH(dav_name) DESC LIMIT 1';
|
$sql .= 'ORDER BY LENGTH(collection.dav_name) DESC LIMIT 1';
|
||||||
$qry = new AwlQuery( $sql, $params );
|
$qry = new AwlQuery( $sql, $params );
|
||||||
if ( $qry->Exec('DAVResource') && $qry->rows() == 1 && ($row = $qry->Fetch()) ) {
|
if ( $qry->Exec('DAVResource') && $qry->rows() == 1 && ($row = $qry->Fetch()) ) {
|
||||||
$this->collection = $row;
|
$this->collection = $row;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user