|  | @@ -43,6 +43,7 @@ CREATE FUNCTION sp_get_images(_only_mine boolean, _user_id_me integer, OUT id in
 | 
		
	
		
			
			| 43 | 43 |          SELECT i.id, i.name, i.user_id, i.date
 | 
		
	
		
			
			| 44 | 44 |          FROM images i
 | 
		
	
		
			
			| 45 | 45 |          WHERE (CASE WHEN _only_mine THEN i.user_id = _user_id_me ELSE TRUE END)
 | 
		
	
		
			
			|  | 46 | +        ORDER BY i.date DESC
 | 
		
	
		
			
			| 46 | 47 |  $$;
 | 
		
	
		
			
			| 47 | 48 |  
 | 
		
	
		
			
			| 48 | 49 |  
 | 
		
	
	
		
			
			|  | @@ -53,8 +54,8 @@ $$;
 | 
		
	
		
			
			| 53 | 54 |  
 | 
		
	
		
			
			| 54 | 55 |  CREATE FUNCTION sp_lu_get_all_user_permission(_user_id integer, OUT _permisson_name character varying, OUT val boolean) RETURNS SETOF record
 | 
		
	
		
			
			| 55 | 56 |      LANGUAGE sql IMMUTABLE SECURITY DEFINER COST 10
 | 
		
	
		
			
			| 56 |  | -    AS $$
 | 
		
	
		
			
			| 57 |  | -SELECT p.name, sp_lu_get_user_permission(_user_id, p.name) FROM luticate_permissions p ORDER bY p.name
 | 
		
	
		
			
			|  | 57 | +    AS $$
 | 
		
	
		
			
			|  | 58 | +SELECT p.name, sp_lu_get_user_permission(_user_id, p.name) FROM luticate_permissions p ORDER bY p.name
 | 
		
	
		
			
			| 58 | 59 |  $$;
 | 
		
	
		
			
			| 59 | 60 |  
 | 
		
	
		
			
			| 60 | 61 |  
 | 
		
	
	
		
			
			|  | @@ -65,11 +66,11 @@ $$;
 | 
		
	
		
			
			| 65 | 66 |  
 | 
		
	
		
			
			| 66 | 67 |  CREATE FUNCTION sp_lu_get_all_user_settings(_user_id integer, OUT _settings json) RETURNS SETOF json
 | 
		
	
		
			
			| 67 | 68 |      LANGUAGE sql IMMUTABLE SECURITY DEFINER COST 10
 | 
		
	
		
			
			| 68 |  | -    AS $$
 | 
		
	
		
			
			| 69 |  | -	SELECT sp_lu_get_user_setting(_user_id, s.name)
 | 
		
	
		
			
			| 70 |  | -	FROM luticate_settings s
 | 
		
	
		
			
			| 71 |  | -	WHERE NOT s.is_admin
 | 
		
	
		
			
			| 72 |  | -	ORDER BY s.name
 | 
		
	
		
			
			|  | 69 | +    AS $$
 | 
		
	
		
			
			|  | 70 | +	SELECT sp_lu_get_user_setting(_user_id, s.name)
 | 
		
	
		
			
			|  | 71 | +	FROM luticate_settings s
 | 
		
	
		
			
			|  | 72 | +	WHERE NOT s.is_admin
 | 
		
	
		
			
			|  | 73 | +	ORDER BY s.name
 | 
		
	
		
			
			| 73 | 74 |  $$;
 | 
		
	
		
			
			| 74 | 75 |  
 | 
		
	
		
			
			| 75 | 76 |  
 | 
		
	
	
		
			
			|  | @@ -80,28 +81,28 @@ $$;
 | 
		
	
		
			
			| 80 | 81 |  
 | 
		
	
		
			
			| 81 | 82 |  CREATE FUNCTION sp_lu_get_user_permission(_user_id integer, _permisson_name character varying, OUT val boolean) RETURNS boolean
 | 
		
	
		
			
			| 82 | 83 |      LANGUAGE plpgsql IMMUTABLE SECURITY DEFINER COST 10
 | 
		
	
		
			
			| 83 |  | -    AS $$
 | 
		
	
		
			
			| 84 |  | -DECLARE
 | 
		
	
		
			
			| 85 |  | -    groups int[];
 | 
		
	
		
			
			| 86 |  | -    g INT;
 | 
		
	
		
			
			| 87 |  | -BEGIN
 | 
		
	
		
			
			| 88 |  | -    SELECT "value" INTO val FROM luticate_permissions_users WHERE "user_id" = _user_id AND "name" = _permisson_name;
 | 
		
	
		
			
			| 89 |  | -    IF val is null THEN
 | 
		
	
		
			
			| 90 |  | -        SELECT lpg."value" into val FROM luticate_permissions_groups lpg
 | 
		
	
		
			
			| 91 |  | -            INNER JOIN luticate_groups lg ON lg."id" = lpg."group_id"
 | 
		
	
		
			
			| 92 |  | -            INNER JOIN luticate_users_groups lug ON lug."user_id" = _user_id AND lug."group_id" = lg."id"
 | 
		
	
		
			
			| 93 |  | -        WHERE lpg."name" = _permisson_name and lpg."value" = FALSE;
 | 
		
	
		
			
			| 94 |  | -        IF val is null then
 | 
		
	
		
			
			| 95 |  | -            SELECT lpg."value" into val FROM luticate_permissions_groups lpg
 | 
		
	
		
			
			| 96 |  | -                INNER JOIN luticate_groups lg ON lg."id" = lpg."group_id"
 | 
		
	
		
			
			| 97 |  | -                INNER JOIN luticate_users_groups lug ON lug."user_id" = _user_id AND lug."group_id" = lg."id"
 | 
		
	
		
			
			| 98 |  | -            WHERE lpg."name" = _permisson_name and lpg."value" = TRUE;
 | 
		
	
		
			
			| 99 |  | -            IF val is null then
 | 
		
	
		
			
			| 100 |  | -                SELECT "value" INTO val FROM luticate_permissions WHERE "name" = _permisson_name;
 | 
		
	
		
			
			| 101 |  | -            END IF;
 | 
		
	
		
			
			| 102 |  | -        end if;
 | 
		
	
		
			
			| 103 |  | -    END IF;
 | 
		
	
		
			
			| 104 |  | -END;
 | 
		
	
		
			
			|  | 84 | +    AS $$
 | 
		
	
		
			
			|  | 85 | +DECLARE
 | 
		
	
		
			
			|  | 86 | +    groups int[];
 | 
		
	
		
			
			|  | 87 | +    g INT;
 | 
		
	
		
			
			|  | 88 | +BEGIN
 | 
		
	
		
			
			|  | 89 | +    SELECT "value" INTO val FROM luticate_permissions_users WHERE "user_id" = _user_id AND "name" = _permisson_name;
 | 
		
	
		
			
			|  | 90 | +    IF val is null THEN
 | 
		
	
		
			
			|  | 91 | +        SELECT lpg."value" into val FROM luticate_permissions_groups lpg
 | 
		
	
		
			
			|  | 92 | +            INNER JOIN luticate_groups lg ON lg."id" = lpg."group_id"
 | 
		
	
		
			
			|  | 93 | +            INNER JOIN luticate_users_groups lug ON lug."user_id" = _user_id AND lug."group_id" = lg."id"
 | 
		
	
		
			
			|  | 94 | +        WHERE lpg."name" = _permisson_name and lpg."value" = FALSE;
 | 
		
	
		
			
			|  | 95 | +        IF val is null then
 | 
		
	
		
			
			|  | 96 | +            SELECT lpg."value" into val FROM luticate_permissions_groups lpg
 | 
		
	
		
			
			|  | 97 | +                INNER JOIN luticate_groups lg ON lg."id" = lpg."group_id"
 | 
		
	
		
			
			|  | 98 | +                INNER JOIN luticate_users_groups lug ON lug."user_id" = _user_id AND lug."group_id" = lg."id"
 | 
		
	
		
			
			|  | 99 | +            WHERE lpg."name" = _permisson_name and lpg."value" = TRUE;
 | 
		
	
		
			
			|  | 100 | +            IF val is null then
 | 
		
	
		
			
			|  | 101 | +                SELECT "value" INTO val FROM luticate_permissions WHERE "name" = _permisson_name;
 | 
		
	
		
			
			|  | 102 | +            END IF;
 | 
		
	
		
			
			|  | 103 | +        end if;
 | 
		
	
		
			
			|  | 104 | +    END IF;
 | 
		
	
		
			
			|  | 105 | +END;
 | 
		
	
		
			
			| 105 | 106 |  $$;
 | 
		
	
		
			
			| 106 | 107 |  
 | 
		
	
		
			
			| 107 | 108 |  
 | 
		
	
	
		
			
			|  | @@ -112,24 +113,24 @@ $$;
 | 
		
	
		
			
			| 112 | 113 |  
 | 
		
	
		
			
			| 113 | 114 |  CREATE FUNCTION sp_lu_get_user_setting(_user_id integer, _setting_name character varying, OUT setting json) RETURNS json
 | 
		
	
		
			
			| 114 | 115 |      LANGUAGE plpgsql IMMUTABLE SECURITY DEFINER COST 10
 | 
		
	
		
			
			| 115 |  | -    AS $$
 | 
		
	
		
			
			| 116 |  | -DECLARE
 | 
		
	
		
			
			| 117 |  | -_setting luticate_settings;
 | 
		
	
		
			
			| 118 |  | -_setting_user luticate_settings_users;
 | 
		
	
		
			
			| 119 |  | -BEGIN
 | 
		
	
		
			
			| 120 |  | -    SELECT * INTO _setting FROM luticate_settings WHERE "name" = _setting_name AND NOT "is_admin";
 | 
		
	
		
			
			| 121 |  | -    IF _setting IS NULL THEN
 | 
		
	
		
			
			| 122 |  | -        setting := NULL;
 | 
		
	
		
			
			| 123 |  | -    ELSE
 | 
		
	
		
			
			| 124 |  | -        IF NOT _setting.is_blocked THEN
 | 
		
	
		
			
			| 125 |  | -            SELECT * INTO _setting_user FROM luticate_settings_users WHERE "user_id" = _user_id AND "name" = _setting_name;
 | 
		
	
		
			
			| 126 |  | -            IF _setting_user IS NOT NULL THEN
 | 
		
	
		
			
			| 127 |  | -                _setting.value := _setting_user.value;
 | 
		
	
		
			
			| 128 |  | -            END IF;
 | 
		
	
		
			
			| 129 |  | -        END IF;
 | 
		
	
		
			
			| 130 |  | -        setting := to_json(_setting);
 | 
		
	
		
			
			| 131 |  | -    END IF;
 | 
		
	
		
			
			| 132 |  | -END;
 | 
		
	
		
			
			|  | 116 | +    AS $$
 | 
		
	
		
			
			|  | 117 | +DECLARE
 | 
		
	
		
			
			|  | 118 | +_setting luticate_settings;
 | 
		
	
		
			
			|  | 119 | +_setting_user luticate_settings_users;
 | 
		
	
		
			
			|  | 120 | +BEGIN
 | 
		
	
		
			
			|  | 121 | +    SELECT * INTO _setting FROM luticate_settings WHERE "name" = _setting_name AND NOT "is_admin";
 | 
		
	
		
			
			|  | 122 | +    IF _setting IS NULL THEN
 | 
		
	
		
			
			|  | 123 | +        setting := NULL;
 | 
		
	
		
			
			|  | 124 | +    ELSE
 | 
		
	
		
			
			|  | 125 | +        IF NOT _setting.is_blocked THEN
 | 
		
	
		
			
			|  | 126 | +            SELECT * INTO _setting_user FROM luticate_settings_users WHERE "user_id" = _user_id AND "name" = _setting_name;
 | 
		
	
		
			
			|  | 127 | +            IF _setting_user IS NOT NULL THEN
 | 
		
	
		
			
			|  | 128 | +                _setting.value := _setting_user.value;
 | 
		
	
		
			
			|  | 129 | +            END IF;
 | 
		
	
		
			
			|  | 130 | +        END IF;
 | 
		
	
		
			
			|  | 131 | +        setting := to_json(_setting);
 | 
		
	
		
			
			|  | 132 | +    END IF;
 | 
		
	
		
			
			|  | 133 | +END;
 | 
		
	
		
			
			| 133 | 134 |  $$;
 | 
		
	
		
			
			| 134 | 135 |  
 | 
		
	
		
			
			| 135 | 136 |  
 |